diff --git a/src/layers/MilepostLayer/arcade/parts/webMercatorToWgs1984.function.arcade b/src/layers/MilepostLayer/arcade/parts/webMercatorToWgs1984.function.arcade index dc591280..1af0952c 100644 --- a/src/layers/MilepostLayer/arcade/parts/webMercatorToWgs1984.function.arcade +++ b/src/layers/MilepostLayer/arcade/parts/webMercatorToWgs1984.function.arcade @@ -17,18 +17,30 @@ function xyWebMercatorToWgs1984(xy) { } function webMercatorToWgs1984(geom) { + var point = null; if (geom.type == "Point") { - // Web Mercator coordinates - var xWebMercator = geom.x; - var yWebMercator = geom.y; - - var wgsXY = xyWebMercatorToWgs1984([xWebMercator, yWebMercator]); + point = geom + } else if (geom.type == "Polyline") { + point = geom.paths[0][0] + } else if (geom.type == "Polygon") { + point = geom.rings[0][0] + } else if (geom.type == "Multipoint") { + point = geom.points[0] + } - return { - x: wgsXY[0], - y: wgsXY[1], - }; + if (point == null) { + return null; } - return null; + // Web Mercator coordinates + var xWebMercator = point.x; + var yWebMercator = point.y; + + var wgsXY = xyWebMercatorToWgs1984([xWebMercator, yWebMercator]); + + return { + x: wgsXY[0], + y: wgsXY[1], + }; } +