Skip to content

Instantly share code, notes, and snippets.

@talllguy
Created June 4, 2019 12:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save talllguy/3d96675bd3f7e2555ba2d8437639cbe9 to your computer and use it in GitHub Desktop.
Save talllguy/3d96675bd3f7e2555ba2d8437639cbe9 to your computer and use it in GitHub Desktop.
Arcade expression for generating an Apple Maps directions link at a point
function MetersToLatLon(x, y) {
// Converts XY point from Spherical Mercator EPSG:900913 to lat/lon in WGS84 Datum
// Source: http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/
// Source: https://community.esri.com/thread/222695-latlong-unit-conversion-with-arcade#comment-806053
var originShift = 2.0 * PI * 6378137.0 / 2.0;
var lon = (x / originShift) * 180.0;
var lat = (y / originShift) * 180.0;
lat = 180.0 / PI * (2.0 * Atan( Exp( lat * PI / 180.0)) - PI / 2.0);
return [lat, lon];
}
function CreateAppleMapsURL(lat, lon) {
return "http://maps.apple.com/?daddr=" + lat + "," + lon
}
var latlon = MetersToLatLon(Geometry($feature).X, Geometry($feature).Y);
var url = CreateAppleMapsURL(latlon[0], latlon[1]);
return url;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment