ArcGIS Location Platform is ons aanbod voor developers om krachtige Location Services zoals kaartweergave, routering, geocodering en Places-zoekfunctie direct in innovatieve webapplicaties te integreren. In dit artikel nemen we een gedetailleerde kijk op de officiële GitHub-demo-repository van Esri Inc. en leggen we uit hoe de afzonderlijke functies technisch zijn geïmplementeerd en zinvol samenwerken.<\/P>
De applicatie is gebaseerd op HTML en JavaScript en maakt gebruik van onze ArcGIS Maps SDK for JavaScript. Het centrale bestand <\/SPAN>main.js<\/FONT> <\/SPAN>bevat alle logica voor het initialiseren van de kaart, het integreren van data en de interactie met de Location Services.<\/P>Bij het starten van de applicatie wordt een kaart geladen met een selecteerbare basemap. Dit gebeurt door het initialiseren van een <\/SPAN>Map-object met het gewenste kaarttype. In het volgende codevoorbeeld wordt een voor navigatie geoptimaliseerde basemap gebruikt:<\/P>const map = new Map({
basemap: "arcgis/navigation"
});<\/code><\/pre> <\/P>Aansluitend wordt een <\/SPAN>MapView<\/FONT> gemaakt, die de kaart rendert in een HTML-container. Daarbij wordt ook de startpositie op Palm Springs gezet:<\/SPAN><\/P>const view = new MapView({
container: "viewDiv",
map: map,
center: [-116.5453, 33.8303],
zoom: 13
});<\/code><\/pre> <\/P>Een centraal kenmerk van de demo is het laden van Points of Interest (POI's) uit een CSV-bestand. Dit bestand wordt vooraf geüpload naar een Feature-Service. De volgende code toont hoe deze service als <\/SPAN>FeatureLayer<\/FONT> wordt ingebonden:<\/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>De <\/SPAN>popupTemplate<\/FONT>-eigenschap definieert welke informatie wordt weergegeven bij het klikken op een object. De <\/SPAN>renderer <\/SPAN>zorgt ervoor dat verschillende typen POI's verschillend worden weergegeven.<\/P>Voor het berekenen van de route wordt een <\/SPAN>RouteTask<\/FONT> <\/SPAN>gebruikt, waaraan start- en eindpunt worden doorgegeven. Na succesvolle berekening wordt de route als <\/SPAN>Graphic<\/FONT> <\/SPAN>op de kaart weergegeven:<\/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>De <\/SPAN>routeParams<\/FONT> <\/SPAN>bevatten onder andere de geometrieën van start- en eindpunten evenals optionele instellingen zoals verkeersinformatie.<\/P>De applicatie maakt het ook mogelijk om verkeersgegevens uit onze ArcGIS Living Atlas of the World in- of uit te schakelen. Dit gebeurt via een eenvoudige zichtbaarheidsschakelaar:<\/P>trafficLayer.visible = !trafficLayer.visible;<\/code><\/pre> <\/P>ArcGIS Location Platform maakt het mogelijk om de hoogte op een bepaald punt op te vragen. Hiervoor wordt onze Elevation-Service gebruikt, die de Z-coördinaat (hoogte) voor een gegeven punt teruggeeft:<\/SPAN><\/P>elevationLayer.queryElevation(point).then(function(result) {
console.log("Elevation:", result.geometry.z);
});<\/code><\/pre> <\/P>Het is belangrijk op te merken dat deze functie alleen werkt met bepaalde basemaps die hoogte-informatie bevatten.<\/P>Tot slot biedt de applicatie ook toegang tot onze Places-Service, waarmee nabijgelegen plaatsen van bepaalde categorieën kunnen worden gezocht. In het volgende voorbeeld worden plaatsen zoals cafés of musea nabij het kaartcentrum opgezocht:<\/P>placesService.searchNearby({
location: view.center,
categories: ["Coffee shop", "Museum"],
maxResults: 10
}).then(showResults);<\/code><\/pre> <\/P>Bij het werken met ArcGIS Location Platform moeten developers rekening houden met enkele uitzonderingen. Zo moet er een geldige API-Key worden aangemaakt in de <\/SPAN>secret.js<\/FONT> <\/SPAN>om de betreffende Location Services te kunnen gebruiken. Daarnaast kunnen er problemen optreden bij het gebruik van eigen CSV-bestanden als deze niet UTF-8-gecodeerd zijn of speciale tekens bevatten. Ook werken verkeersgegevens alleen met bepaalde basemaps, wat bij de configuratie in acht moet worden genomen.<\/P>ArcGIS Location Platform biedt een indrukwekkende reeks functies die met slechts enkele regels code in moderne webapplicaties kunnen worden geïntegreerd. Of het nu gaat om routering, Places-zoekfunctie of het weergeven van verkeersgegevens – het is een krachtig hulpmiddel voor iedereen die geo-informatie wil benutten.<\/P>Als je zelf een applicatie wilt ontwikkelen met onze Location Services, raden we aan om de <\/SPAN>officiële demo-repository <\/SPAN>te fork-en en te experimenteren met eigen use-cases. De documentatie is duidelijk gestructureerd en de voorbeelden zijn eenvoudig aan te passen.<\/P>Kijk gerust eens op onze Developer Hub. <\/P>