> For the complete documentation index, see [llms.txt](https://multiset.gitbook.io/multiset/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://multiset.gitbook.io/multiset/fundamentals/georeferencing-maps/how-to-align-scans.md).

# How to Manually Align Scans

## What Alignment Does

Every map is georeferenced automatically when you create it. During map creation you pick the location on the map and MultiSet captures the **latitude**, **longitude**, and **altitude** with the scan, so those values are always present.

What is not captured automatically is the **heading** (the orientation of the scan relative to True North), which defaults to 0 (due north). Because of this, a freshly created map is usually placed at the right spot but often needs its heading corrected, and sometimes a small positional or altitude nudge to sit exactly on the ground.

A MapSet does not capture its own location. It inherits its coordinates and heading from its **origin map** (the first map you select when creating the set), which got those values at map creation. Aligning a MapSet therefore corrects the origin map's placement, and every other map in the set moves with it.

Aligning a scan means opening the map over a satellite basemap in the Developer Portal and correcting its placement visually, so the four values (latitude, longitude, altitude, heading) match the real world.

{% hint style="info" %}
You no longer need Unity, external elevation tools, or manual coordinate extraction to georeference a map. The whole workflow now lives inside the Developer Portal viewer.
{% endhint %}

***

### Step 1: Open the Map in the Viewer

Go to the [MultiSet Developer Portal](https://developer.multiset.ai/maps) and open the map (or MapSet) you want to align.

**For a single map**, open the map's detail page and click **View Mesh**.

<figure><img src="/files/M0AvyF0K8DvTUIuyDvhP" alt=""><figcaption><p>Single map: click View Mesh on the map detail page</p></figcaption></figure>

**For a MapSet**, open the MapSet detail page and click **View Maps**. The whole set is aligned together as one unit through its origin map.

<figure><img src="/files/rMZHEu96BX22pEFrzQfB" alt=""><figcaption><p>MapSet: click View Maps on the MapSet detail page</p></figcaption></figure>

***

### Step 2: Switch to Satellite View

The viewer opens in **3D** mode. Use the toggle at the top to switch to **Satellite**.

<figure><img src="/files/Uvf2j3jepSVgdXd8qzu7" alt=""><figcaption><p>Click Satellite to load the map over the satellite basemap</p></figcaption></figure>

The mesh loads onto a real satellite basemap at its captured coordinates. This is where you check and correct the alignment.

<figure><img src="/files/eY9DngXvZD6N5QthOAbD" alt=""><figcaption><p>The satellite alignment workspace: mesh, transform gizmo, and Placement panel</p></figcaption></figure>

***

### Step 3: Check the Alignment

Orbit the camera and compare the mesh against the satellite imagery. Look at building footprints, roads, and edges to see how well they line up.

The **View** section of the panel (top right) has tools to help you judge alignment:

* **Satellite tiles** turns the basemap imagery on or off, so you can tell mesh gaps apart from imagery showing through.
* **Terrain** toggles the elevated ground surface.
* **Mesh opacity** makes the mesh see-through, so you can see the imagery underneath and line the two up.

{% hint style="info" %}
Lower the **Mesh opacity** to around 50% while aligning. Seeing the satellite imagery through the mesh makes it much easier to match edges precisely.
{% endhint %}

***

### Step 4: Correct the Placement

There are two ways to reposition the mesh, and both stay in sync. You can drag the on-screen gizmo for quick adjustments, or type exact values into the Placement panel for fine control.

#### Using the gizmo

The coloured gizmo on the mesh has three kinds of handles:

* **Arrows** move the mesh along a single axis (East, North, or Up), which changes longitude, latitude, or altitude.
* **Corner squares (plane sliders)** move the mesh across two axes at once.
* **Yaw ring** rotates the mesh around the vertical axis, which sets the **heading**.

Since heading is the value that defaults to north, rotating the yaw ring until the mesh lines up with the imagery is usually the main correction. Then use the arrows or plane sliders for any small positional nudges.

#### Using the Placement panel

The **Placement** section shows the live **Latitude**, **Longitude**, **Altitude**, and **Heading**. Editing any field moves the mesh immediately, and dragging the gizmo updates these fields in real time. Use the fields when you want to enter a precise value rather than drag.

***

### Step 5: Save

When the mesh sits correctly on the imagery, click **Save** in the Placement panel to write the new values back to the map.

* **Save** becomes active only when you have made a change.
* **Cancel** discards any unsaved adjustment and reverts the mesh to its last saved placement. Clicking on empty space does the same.
* **Re-center** returns the camera to its starting view without changing any values.

Your updated coordinates and heading are now stored on the map and used for GeoHint during localization.

{% hint style="success" %}
For MapSets, aligning the set moves every map together through the origin map, so the relative positions between maps are preserved.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://multiset.gitbook.io/multiset/fundamentals/georeferencing-maps/how-to-align-scans.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
