Crear un enlace con Arcade para Navegar con Waze desde la Ventana Emergente

Document created by xander_bakker on Mar 23, 2018Last modified by xander_bakker on Mar 23, 2018
Version 2Show Document
  • View in full screen mode

Esri tiene el producto Navigator for ArcGIS que está perfectamente integrado con la solución para gestionar el trabajo en campo como Workforce for ArcGIS y las aplicaciones para levantar datos en campo como Collector for ArcGIS - Collect & Update Data in the Field | Esri  y Survey123 for ArcGIS : Smarter Forms, Smarter Field Work . Sin embargo, la capa para definir la ruta no está basada en datos de tráfico en tiempo real, pero en datos históricos de tráfico. Cuando un cliente nos preguntó si era posible para integrar la navegación con https://www.waze.com/  a partir de elementos en un mapa web de ArcGIS, generamos este documento para explicar como se puede lograr esto. 

 

En el documento Crear un enlace a Streetview en la Ventana Emergente con Arcade mostramos como podemos generar una URL leyendo las propiedades de la geometría o unos campos de latitud y longitud. Un reto que podemos tener es el hecho que en muchos casos al leer la geometría de una capa alojada en ArcGIS Online, las coordenadas que se devuelven están expresadas en coordenadas proyectadas usando Web Mercator Auxiliary Sphere y no como coordenadas geográficas en WGS 1984. Creando un enlace a Waze o StreetView requiere tener acceso a las coordenadas expresadas como grados decimales en WGS 1984. 

 

Durante la plenaria del DevSummit 2018 – Palm Springs, CA en la presentación de Client-side Processing in Web Applications - YouTube se mencionó que el ArcGIS API for JavaScript | ArcGIS for Developers  en la próxima versión va incluir el motor de proyección que permite hacer proyecciones en el cliente sin generar tráfico al servidor y así se obtiene un rendimiento muy alto. Una vez disponible en JavaScript, esto da la posibilidad de ofrecerlo en ArcGIS Arcade | ArcGIS for Developers  también. Actualmente no tenemos detalles si va estar disponible en la actualización de ArcGIS Online del 10 de abril 2018, pero en caso que no, hay formas de resolver el problemas de las coordenadas.

 

Ver abajo la expresión de Arcade para convertir las coordenadas planas en Web Mercator Auxiliary Sphere a coordenadas geográficas en WGS 1984:

function MetersToLatLon(x, y) {
    // Converts XY point from Spherical Mercator EPSG:900913 to lat/lon in WGS84 Datum
    // Fuente: http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/
    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];
}

 

Una vez una tengamos las coordenadas en latitud y longitud podemos construir la URL:

function CreateWazeURL(lat, lon) {
    return "https://waze.com/ul?ll=" + lat + "," + lon + "&navigate=yes"
}

 

La expresión final queda como:

function MetersToLatLon(x, y) {
    // Converts XY point from Spherical Mercator EPSG:900913 to lat/lon in WGS84 Datum
     // Fuente: http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/
    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 CreateWazeURL(lat, lon) {
    return "https://waze.com/ul?ll=" + lat + "," + lon + "&navigate=yes"
}

var latlon = MetersToLatLon(Geometry($feature).X, Geometry($feature).Y);
var url = CreateWazeURL(latlon[0], latlon[1]);
return url;

 

El resultado es cuando se abre el mapa web o la App en un dispositivo web, el enlace inicie Waze (en caso que tiene instalada la aplicación) e inicie automáticamente la navegación. 

 

Por ejemplo un usuario cree el punto, y en el iPad hacer clic sobre el punto para abrir la ventana emergente la cual muestre el enlace para navegar con Waze:

 

 

Cuando se hace clic sobre el enlace se abre Waze en modo de navegación:

4 people found this helpful

Attachments

    Outcomes