Coordinates - API Client JS

MapTiler API Client JS coordinates functions provide convenient access to the details of 10 thousand coordinate reference systems (CRS) programmatically, as well as transforming coordinates from one system to another. Find more about coordinates systems at epsg.io (created by MapTiler).

Coordinates functions:

The search lets you perform a free form query to find coordinate systems.

// in an async function, or as a 'thenable':
const result = await maptilerClient.coordinates.search('pseudo-mercator');

Parameters

query Can be any kind of CRS by name or code. Query string used to search the catalog. It accepts plain terms such as names of locations and key:value pairs for filtering.
options.apiKey Custom MapTiler Cloud API key to use instead of the one in global config.
options.exports Show exports in WKT and Proj4 notations (default: false).
options.limit Maximum number of results returned (default: 10).
options.transformations Show detailed transformations for each CRS (default: false).

Response

Returns a coordinates result object

{
  "results": [
    {
      "id": {
        "authority": "EPSG",
        "code": 3857
      },
      "kind": "CRS-PROJCRS",
      "name": "WGS 84 / Pseudo-Mercator",
      "exports": null,
      "unit": "metre",
      "accuracy": null,
      "area": "World between 85.06°S and 85.06°N.",
      "bbox": [
        -180,
        -85.06,
        180,
        85.06
      ],
      "deprecated": false,
      "default_transformation": null,
      "transformations": [
        9189,
        9690,
        9691,
        15960
      ]
    }
  ],
  "total": 1
}

More examples

Search for coordinate reference systems (CRS) in the specified country:

// in an async function, or as a 'thenable':
const result = await maptilerClient.coordinates.search('United Kingdom');

Search for mercator coordinate reference systems (CRS) with filtering. Only search deprecated definitions:

// in an async function, or as a 'thenable':
const result = await maptilerClient.coordinates.search('mercator deprecated:1');

Search by EPSG code:

// in an async function, or as a 'thenable':
const result = await maptilerClient.coordinates.search('code:4326');

or just the EPSG code number:

// in an async function, or as a 'thenable':
const result = await maptilerClient.coordinates.search('4326'); 

The transformations options retrieves a lot more details about the CRS that MapTiler API is able to transform to/from than just their IDs:

// in an async function, or as a 'thenable':
const result = await maptilerClient.coordinates.search('code:4326', {transformations: true});

Finding all resources of Finland:

// in an async function, or as a 'thenable':
const result = await maptilerClient.coordinates.search('finland deprecated:* kind:*');

Filtering resources using parameter(s):

// in an async function, or as a 'thenable':
const result = await maptilerClient.coordinates.search('Spain kind:DATUM');

Read more about searching coordinate systems on our official API documentation.

Transforming a couple of coordinates from one system to another can be challenging, for example, most countries have their own official system, yet web mapping tools are more often than not exclusive to WGS84.

If not provided, both the source (sourceCrs) and the destination (targetCrs) are default to EPSG:4326 (in other words, WGS84). Here is how to use this feature:

// in an async function, or as a 'thenable':

// Providing one coordinate to transform, with a target CRS being EPSG:9793 (RGF93 v2 / Lambert-93, France official CRS)
const resultA = await maptilerClient.coordinates.transform([1, 45], {targetCrs: 9793})

// Using the same logic, we can pass up to 50 coordinates to be transformed
const resultB = await maptilerClient.coordinates.transform([[10, 48], [1, 45]], {targetCrs: 9793})

Parameters

positions Coordinates to transform. A [lon, lat] array or an array of [lon, lat] arrays.
options.apiKey Custom MapTiler Cloud API key to use instead of the one in global config.
options.operations List of codes of operations.
options.sourceCrs Source coordinate reference system (default: 4326).
options.targetCrs arget coordinate reference system (default: 4326).

Response

Returns a transform result object

{
  "transformer_selection_strategy": "auto",
  "results": [
    {
      "x": 542418.1006803319,
      "y": 6435414.747835401,
      "z": 0
    }
  ]
}

More examples

Transforming from ED50 31N to ETRS89 31N:

// in an async function, or as a 'thenable':
const results = await coordinates.transform({lng: 432648.873, lat: 4624697.432}, {sourceCrs: 23031, targetCrs: 25831});

Transforming from S-JTSK to wgs84 (default) with operation:

// in an async function, or as a 'thenable':
const results = await coordinates.transform({lng: -742792.638284, lat: -1044844.906030}, {sourceCrs: 5513, operations: 1623});

Read more about transforming coordinates on our official API documentation.