UNPKG

hmpps-open-layers-map

Version:

A native Web Component for displaying maps using OpenLayers or MapLibre.

29 lines (28 loc) 1.35 kB
// Rewrite source + assets URLs to point to the local middleware endpoints export function rewriteStyleUrls(style, BASE_PATH) { const styleToUpdate = { ...style }; if (styleToUpdate.sources) { for (const source of Object.values(styleToUpdate.sources)) { if (typeof source.url === 'string') { source.url = `${BASE_PATH}/source`; } if (Array.isArray(source.tiles)) { source.tiles = source.tiles.map(tile => tile.replace(/^https:\/\/api\.os\.uk\/maps\/vector\/v1\/vts\/tile/, `${BASE_PATH}/tiles`)); } } } if (styleToUpdate.sprite) { styleToUpdate.sprite = styleToUpdate.sprite.replace(/^https:\/\/api\.os\.uk\/maps\/vector\/v1\/vts\/resources/, `${BASE_PATH}/assets`); } if (styleToUpdate.glyphs) { styleToUpdate.glyphs = styleToUpdate.glyphs.replace(/^https:\/\/api\.os\.uk\/maps\/vector\/v1\/vts\/resources/, `${BASE_PATH}/assets`); } return styleToUpdate; } export function rewriteVectorSource(json, BASE_PATH) { const JsonToUpdate = { ...json }; if (JsonToUpdate.tiles && Array.isArray(JsonToUpdate.tiles)) { JsonToUpdate.tiles = JsonToUpdate.tiles.map(tile => tile.replace(/^https:\/\/api\.os\.uk\/maps\/vector\/v1\/vts\/tile/, `${BASE_PATH}/tiles`)); } return JsonToUpdate; }