ArcGIS Location Platform ist unser Angebot für Developer leistungsstarke Location Services wie Kartenanzeige, Routing, Geokodierung und Places-Suche direkt in innovative Webanwendungen zu integrieren. In diesem Beitrag werfen wir einen detaillierten Blick auf das offizielle GitHub-Demo-Repository von Esri Inc. und erklären, wie die einzelnen Funktionen technisch umgesetzt sind und sinnvoll zusammenspielen.
Die Anwendung basiert auf HTML und JavaScript und nutzt unser ArcGIS Maps SDK for JavaScript. Die zentrale Datei main.js enthält sämtliche Logik zur Initialisierung der Karte, zur Datenintegration und zur Interaktion mit den Location Services.
Beim Start der Anwendung wird eine Karte mit einer auswählbaren Basemap geladen. Dies geschieht durch die Initialisierung eines Map-Objekts mit dem gewünschten Kartentyp. Im folgenden Codebeispiel eine für Navigation optimierte Basemap verwendet:
const map = new Map({
basemap: "arcgis/navigation"
});
Anschließend wird eine MapView erstellt, welche die Karte in einem HTML-Container rendert. Dabei wird auch die Startposition auf Palm Springs gesetzt:
const view = new MapView({
container: "viewDiv",
map: map,
center: [-116.5453, 33.8303],
zoom: 13
});
Ein zentrales Feature der Demo ist das Laden von Points of Interest (POIs) aus einer CSV-Datei. Diese Datei wird zuvor in einen Feature-Service hochgeladen. Der folgende Code zeigt, wie dieser Service als FeatureLayer eingebunden wird:
const featureLayer = new FeatureLayer({
url: "https://services.arcgis.com/…/FeatureServer/0",
popupTemplate: {
title: "{Name}",
content: "{Description}"
},
renderer: {
type: "unique-value",
field: "Type",
uniqueValueInfos: [...]
}
});
map.add(featureLayer);
Die popupTemplate-Eigenschaft definiert, welche Informationen beim Klick auf ein Objekt angezeigt werden. Der renderer sorgt dafür, dass verschiedene Typen von POIs unterschiedlich dargestellt werden.
Für die Berechnung der Route wird ein RouteTask verwendet, dem Start- und Zielpunkt übergeben werden. Nach erfolgreicher Berechnung wird die Route als Graphic auf der Karte angezeigt:
route.solve(routeParams).then(function(data) {
const routeResult = data.routeResults[0].route;
routeLayer.add(new Graphic({
geometry: routeResult.geometry,
symbol: routeSymbol
}));
});
Die routeParams enthalten dabei unter anderem die Geometrien der Start- und Zielpunkte sowie optionale Einstellungen wie Verkehrsinformationen.
Die Anwendung erlaubt es auch, Verkehrsdaten aus unserem ArcGIS Living Atlas of the World ein- oder auszublenden. Dies geschieht über einen einfachen Sichtbarkeitsschalter:
trafficLayer.visible = !trafficLayer.visible;
ArcGIS Location Platform ermöglicht die Abfrage der Höhe an einem bestimmten Punkt. Hierzu wird unser Elevation-Service verwendet, dieser liefert die Z-Koordinate (Höhe) für einen gegebenen Punkt zurück:
elevationLayer.queryElevation(point).then(function(result) {
console.log("Elevation:", result.geometry.z);
});
Zu beachten ist, dass diese Funktion nur mit bestimmten Basemaps funktioniert, die Höheninformationen enthalten.
Schließlich bietet die Anwendung auch Zugriff auf unseren Places-Service, mit dem sich nahegelegene Orte bestimmter Kategorien suchen lassen. Im folgenden Beispiel werden Orte wie Cafés oder Museen in der Nähe des Kartenmittelpunkts abgefragt:
placesService.searchNearby({
location: view.center,
categories: ["Coffee shop", "Museum"],
maxResults: 10
}).then(showResults);
Bei der Arbeit mit ArcGIS Location Platform sollten Developer einige Sonderfälle beachten. Beispielsweise muss ein gültiger API-Key in der secret.js erstellt werden, um die entsprechenden Location Services nutzen zu können. Zudem kann es bei der Verwendung eigener CSV-Dateien zu Problemen kommen, wenn diese nicht UTF-8-kodiert sind oder Sonderzeichen enthalten. Auch die Verkehrsdaten funktionieren nur mit bestimmten Basemaps, was bei der Konfiguration berücksichtigt werden sollte.
ArcGIS Location Platform bietet eine beeindruckende Bandbreite an Funktionen, die sich mit wenigen Zeilen Code in moderne Webanwendungen integrieren lassen. Ob Routing, Places-Suche oder die Darstellung von Verkehrsdaten – es ist ein mächtiges Werkzeug für alle, die Geoinformationen in Wert setzen.
Wenn du selbst eine Anwendung mit unseren Location Services entwickeln möchtest, empfehlen wir, das offizielle Demo-Repository zu forken und mit eigenen Anwendungsfällen zu experimentieren. Die Dokumentation ist klar strukturiert, und die Beispiele lassen sich leicht anpassen.
Schaut einfach mal auf unserem Developer Hub vorbei.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.