Coordinates
Every place you give to the map, or get back from it, is a MapCoordinate. In the common case you never
build one: pass a position from your scene.
map.EaseTo(player.position); // a Vector3 converts by itself
map.AddPoint(chest.position);
The map is seen from above, so the horizontal plane of your scene is the plane of the map. A coordinate
holds X = Unity X and Y = Unity Z. The height of the object (Unity Y) is ignored. A Vector2 converts
the same way: its x is Unity X and its y is Unity Z.
Back to a scene position
Vector3 onGround = coordinate.ToVector3(); // height 0
Vector3 raised = coordinate.ToVector3(12f); // at the height you give
The map has no height, so you give it.
Real-world maps
A map of the real world uses longitude and latitude (degrees east and north) instead:
map.EaseTo(MapCoordinate.LngLat(2.3522, 48.8566), zoom: 12);
map.NativeSpace tells which kind a map gives back: MapSpace.World for a map baked from your scene,
MapSpace.LngLat for a real-world map. Coordinates that come out of the map (Center, PointerPosition,
Clicked) use this space.
Convert between the two
A map baked from your scene knows where it sits on Earth, so it can convert:
MapCoordinate here = player.position;
MapCoordinate degrees = here.To(MapSpace.LngLat, map);
if (degrees.TryTo(MapSpace.World, map, out MapCoordinate back)) { /* ... */ }
To throws an InvalidOperationException when the map cannot convert (a real-world map has no scene
placement). TryTo returns false instead. Asking for the space the coordinate is already in always works.
X and Y are double values: a float is too coarse for longitudes.