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],
+  };
 }
+