JavaScript Examples
These examples use the fetch API, available in Node.js 18+ and all modern browsers.
Forward Geocoding
const API_KEY = process.env.GEOCODEME_API_KEY;
async function geocode(query) {
const url = new URL("https://api.geocodeme.net/v1/geocode");
url.searchParams.set("q", query);
url.searchParams.set("limit", "1");
const response = await fetch(url, {
headers: { "X-Api-Key": API_KEY },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error.message);
}
return response.json();
}
const result = await geocode("1 rue de Rivoli, Paris");
console.log(result.results[0].lat, result.results[0].lon);
Reverse Geocoding
async function reverseGeocode(lat, lon) {
const url = new URL("https://api.geocodeme.net/v1/reverse");
url.searchParams.set("lat", lat.toString());
url.searchParams.set("lon", lon.toString());
const response = await fetch(url, {
headers: { "X-Api-Key": API_KEY },
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error.message);
}
return response.json();
}
const result = await reverseGeocode(48.8566, 2.3522);
// /v1/reverse returns a single `result` object (or null), not an array
if (result.result !== null) {
console.log(result.result.display_name);
}
Map Matching
async function matchRoute(coordinates) {
const response = await fetch("https://api.geocodeme.net/v1/match", {
method: "POST",
headers: {
"X-Api-Key": API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
coordinates,
profile: "car",
geometries: "geojson",
}),
});
if (!response.ok) {
const error = await response.json();
throw new Error(error.error.message);
}
return response.json();
}
const result = await matchRoute([
[2.3522, 48.8566],
[2.3488, 48.8534],
[2.347, 48.8521],
]);
// matched_coordinates is [[lon, lat], ...] when geometries=geojson
console.log(result.matched_coordinates);
console.log(`Confidence: ${result.confidence}, distance: ${result.distance_meters}m`);