ArcGIS Location Platform es nuestra oferta para que los desarrolladores integren potentes servicios de ubicación como visualización de mapas, enrutamiento, geocodificación y búsqueda de Places directamente en aplicaciones web innovadoras. En esta publicación, echamos un vistazo detallado al repositorio demo oficial de GitHub de Esri Inc. y explicamos cómo se implementan técnicamente las funciones individuales y cómo interactúan de manera efectiva.<\/P>
La aplicación se basa en HTML y JavaScript y utiliza nuestro ArcGIS Maps SDK for JavaScript. El archivo central <\/SPAN>main.js<\/FONT> <\/SPAN>contiene toda la lógica para la inicialización del mapa, la integración de datos y la interacción con los servicios de ubicación.<\/P>Al iniciar la aplicación, se carga un mapa con una Basemap seleccionable. Esto se realiza mediante la inicialización de un objeto <\/SPAN>Map con el tipo de mapa deseado. En el siguiente ejemplo de código se utiliza una Basemap optimizada para navegación:<\/P>const map = new Map({
basemap: "arcgis/navigation"
});<\/code><\/pre> <\/P>A continuación, se crea una <\/SPAN>MapView<\/FONT> que renderiza el mapa en un contenedor HTML. También se establece la posición inicial en Palm Springs:<\/SPAN><\/P>const view = new MapView({
container: "viewDiv",
map: map,
center: [-116.5453, 33.8303],
zoom: 13
});<\/code><\/pre> <\/P>Una característica central de la demo es la carga de Points of Interest (POIs) desde un archivo CSV. Este archivo se carga previamente en un Feature-Service. El siguiente código muestra cómo se integra este servicio como un <\/SPAN>FeatureLayer<\/FONT> :<\/SPAN><\/P>const featureLayer = new FeatureLayer({
url: "https://services.arcgis.com/026/FeatureServer/0",
popupTemplate: {
title: "{Name}",
content: "{Description}"
},
renderer: {
type: "unique-value",
field: "Type",
uniqueValueInfos: [...]
}
});
map.add(featureLayer);<\/code><\/pre> <\/P>La propiedad <\/SPAN>popupTemplate<\/FONT> define qué información se muestra al hacer clic en un objeto. El <\/SPAN>renderer <\/SPAN>asegura que diferentes tipos de POIs se representen de manera distinta.<\/P>Para el cálculo de la ruta se utiliza un <\/SPAN>RouteTask<\/FONT>, al que se le pasan el punto de inicio y destino. Tras un cálculo exitoso, la ruta se muestra como un <\/SPAN>Graphic<\/FONT> en el mapa:<\/P>route.solve(routeParams).then(function(data) {
const routeResult = data.routeResults[0].route;
routeLayer.add(new Graphic({
geometry: routeResult.geometry,
symbol: routeSymbol
}));
});<\/code><\/pre> <\/P>Los <\/SPAN>routeParams<\/FONT> contienen, entre otros, las geometrías de los puntos de inicio y destino así como configuraciones opcionales como información del tráfico.<\/P>La aplicación también permite mostrar u ocultar datos de tráfico desde nuestro ArcGIS Living Atlas of the World. Esto se realiza mediante un simple interruptor de visibilidad:<\/P>trafficLayer.visible = !trafficLayer.visible;<\/code><\/pre> <\/P>ArcGIS Location Platform permite consultar la elevación en un punto específico. Para ello se utiliza nuestro Elevation-Service, que devuelve la coordenada Z (elevación) para un punto dado:<\/SPAN><\/P>elevationLayer.queryElevation(point).then(function(result) {
console.log("Elevation:", result.geometry.z);
});<\/code><\/pre> <\/P>Es importante tener en cuenta que esta función solo funciona con ciertas Basemaps que contienen información de elevación.<\/P>Finalmente, la aplicación también ofrece acceso a nuestro Places-Service, con el que se pueden buscar lugares cercanos de categorías específicas. En el siguiente ejemplo se consultan lugares como cafés o museos cerca del centro del mapa:<\/P>placesService.searchNearby({
location: view.center,
categories: ["Coffee shop", "Museum"],
maxResults: 10
}).then(showResults);<\/code><\/pre> <\/P>Al trabajar con ArcGIS Location Platform, los desarrolladores deben tener en cuenta algunos casos especiales. Por ejemplo, es necesario crear una clave API válida en el <\/SPAN>secret.js<\/FONT> para poder utilizar los servicios de ubicación correspondientes. Además, puede haber problemas al usar archivos CSV propios si no están codificados en UTF-8 o contienen caracteres especiales. Los datos de tráfico también solo funcionan con ciertas Basemaps, lo cual debe considerarse durante la configuración.<\/P>ArcGIS Location Platform ofrece una impresionante gama de funciones que pueden integrarse en aplicaciones web modernas con pocas líneas de código. Ya sea enrutamiento, búsqueda de Places o visualización de datos de tráfico, es una herramienta poderosa para quienes desean aprovechar la información geográfica.<\/P>Si deseas desarrollar una aplicación con nuestros servicios de ubicación, recomendamos hacer fork del <\/SPAN>repositorio demo oficial y experimentar con tus propios casos de uso. La documentación está claramente estructurada y los ejemplos son fáciles de adaptar.<\/P>Echa un vistazo a nuestro Developer Hub. <\/P>