When interacting with the MapillaryJS API you will generally use Geodetic coordinates. In some situations such as when writing custom renderers, you will most probably work with both and convert between them.
The WGS84 datum has longitude (degrees), latitude (degrees) and altitude (meters) values.
In the ENU (or World) reference frame the x-axis points to East, the y-axis to North and the z-axis up. All values are represented in meters.
Coordinates can be converted between the geodetic and local topocentric coordinates like so.
When writing data provider extensions, you will also need to handle Local camera coordinates.
MapillaryJS also works with a number of different 2D coordinate systems.
Pixel coordinates are coordinates on the viewer container. The origin is in the top left corner of the container. The axes are directed according to the following for a viewer container with a width of 640 pixels and height of 480 pixels.
(0,0) (640, 0) +------------------------> | | | v +(0, 480) (640, 480)
Basic image coordinates represents points in the original image adjusted for orientation. They range from 0 to 1 on both axes. The origin is in the top left corner of the image and the axes are directed according to the following for all image types.
(0,0) (1, 0) +------------------------> | | | v +(0, 1) (1, 1)
For every camera viewing direction it is possible to convert between these two coordinate systems for the current image. The image can be panned and zoomed independently of the size of the viewer container resulting in different conversion results for different viewing directions
See the OpenSfM coordinate system documentation for additional information about Normalized image coordinates (or OpenSfM coordinates), Upright image coordinates (or Basic cordinates), World coordinates, and Local camera coordinates.