How to Align Scans

Option 1: Manual Alignment of Map with Satellite Image in Unity

🎯 Objective

Manually align a 3D map mesh with a satellite image to accurately extract the following values:

  • Latitude

  • Longitude

  • Altitude

  • Heading (relative to True North)

This is useful for georeferencing Scans in Unity using the MultiSet SDK.


🧰 Requirements

  • Unity Editor

  • MultiSet SDK set up in the project

  • Google Maps (or similar mapping tool)

  • Image editor (e.g., Photoshop or online tools)

🗺️ Step 1: Identify the Scan Location

  1. Open Google Maps or any detailed mapping service.

  2. Look up your scan location. Example: Long Beach Convention Center, Long Beach, CA.

  3. Ensure you’re using Map View, not Globe View. Globe View may distort tall buildings and can interfere with alignment accuracy.


🖼️ Step 2: Capture a Satellite Image

  1. Capture a square (1:1 aspect ratio) satellite image of the area. Example: 1120 x 1120 pixels

  2. Ensure the map is oriented toward True North (no rotation).

  3. Include the map’s origin point in the image.

📌 This image will be used later to align the mesh in Unity.


🔐 Step 3: Set Up the SDK in Unity

  1. Open your Unity project containing the MultiSet SDK.

  2. Update your SDK credentials.

  3. Locate the MultisetSdkManager GameObject.

  4. Set Map Localization Type to Map.

  5. Enter your Map Code, which can be found at: 🔗 https://developer.multiset.ai/maps


🧱 Step 4: Download and View the Mesh

  1. Select the MapMeshDownloader GameObject in Unity.

  2. In the Inspector Panel, click Download Mesh.

  3. The map mesh will appear in the Unity Scene view.

Texture Mesh added in the scene


🖼️ Step 5: Import and Prepare the Satellite Image

  1. Import the satellite image you saved earlier into Unity’s Assets.

  2. Create a Plane GameObject in the scene.

  3. Apply the satellite image as a Texture to this plane.

📌 Note: The texture may be rotated incorrectly.

  • Rotate the parent GameObject of the plane by 180°.

  • Do not scale the mesh. Instead, scale the plane to match the mesh alignment.


🎯 Step 6: Align the Plane with the Mesh

  1. Confirm that the Area Target’s origin in Unity is at (0, 0, 0).

  2. Uniformly scale and rotate the plane until the mesh aligns correctly over the satellite image.

✅ Expected Heading: caculate the Y rotation value of your plane gameobject (i.e : 355.5°)


🧭 Step 7: Switch to Orthographic Top View

  1. In the Scene View, switch to Orthographic mode.

  2. Click the cube icon in the upper right and align the green cone for top-down view.

🖼️ Your view should now resemble the satellite image overlaid by the mesh.

From perspective to orthographic (Top View)


📍 Step 8: Identify Map Origin for GPS Coordinates

  1. Under the MapSpace GameObject, find the Gizmo/Origin object.

  2. Temporarily hide the mesh to see the origin clearly.

  3. Ensure the gizmo is placed over the correct spot on the satellite image.


🌐 Step 9: Retrieve Latitude & Longitude

  1. In Google Maps, right-click on the map origin location. Copy the Latitude and Longitude from the context menu.

✅ Example Output:

  • Latitude: 12.840064903279117

  • Longitude: 77.6428387867768


🏔️ Step 10: Get Altitude

  1. Enter the captured latitude and longitude.

  2. Retrieve the altitude value.

✅ Example Output:

  • Altitude: 933 (meters)


Finally we have all these four values :

  1. Latitude : 12.840064903279117

  2. Longitude : 77.6428387867768

  3. Altitude : 933

  4. Heading : 355.5

Update Map Geocoordinates in Developer Portal

Go to MultiSet Developer Portal -> Maps -> Select the map that you georeferenced and click setting button (3 dots) to update the Geo Coordinates.

Last updated

Was this helpful?