mapnests-browser-sdk
Version:
TypeScript SDK for Mapnests API integration (Distance Matrix, Distance Matrix Details, Geocode, Reverse Geocode)
36 lines (35 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BASE_URL = void 0;
exports.buildURLFromJSON = buildURLFromJSON;
exports.BASE_URL = 'https://engine.mapnests.com';
function buildURLFromJSON(label, baseUrl, jsonStr) {
const data = JSON.parse(jsonStr);
switch (label) {
case 'reverse': {
return `${baseUrl}/geomap/api/v1/reverse?lat=${data.Lat}&lon=${data.Lon}`;
}
case 'distanceMatrix':
case 'distanceMatrixDetails': {
const fromLat = data.OriginLat;
const fromLon = data.OriginLon;
const toLat = data.DestLat;
const toLon = data.DestLon;
const mode = encodeURIComponent(data.Mode);
const path = label === 'distanceMatrixDetails' ? 'distancematrixdetails' : 'distancematrix';
return `${baseUrl}/routemap/api/v1/routes/${path}?fromLat=${fromLat}&fromLong=${fromLon}&toLat=${toLat}&toLong=${toLon}&mode=${mode}`;
}
case 'pairwiseRouteSummary': {
return `${baseUrl}/routemap/api/v1/routes/pairwise-summary`;
}
case 'multiSourceSummary': {
return `${baseUrl}/routemap/api/v1/routes/multi-source-summary`;
}
case 'search': {
const query = encodeURIComponent(data.Query);
return `${baseUrl}/geomap/api/v1/search?q=${query}`;
}
default:
throw new Error(`unsupported label: ${label}`);
}
}