ArcGIS Location Platform je naše nabídka pro Developer integrovat výkonné Location Services jako zobrazení map, routing, geokódování a vyhledávání Places přímo do inovativních webových aplikací. V tomto příspěvku se podíváme podrobně na oficiální GitHub-Demo-Repository od Esri Inc. a vysvětlíme, jak jsou jednotlivé funkce technicky implementovány a smysluplně spolupracují.<\/P>
Aplikace je založena na HTML a JavaScriptu a využívá náš ArcGIS Maps SDK for JavaScript. Centrální soubor <\/SPAN>main.js<\/FONT> <\/SPAN>obsahuje veškerou logiku pro inicializaci mapy, integraci dat a interakci s Location Services.<\/P>Při spuštění aplikace se načte mapa s volitelnou Basemap. To se provádí inicializací <\/SPAN>Map-objektu s požadovaným typem mapy. V následujícím ukázkovém kódu je použita Basemap optimalizovaná pro navigaci:<\/P>const map = new Map({
basemap: "arcgis/navigation"
});<\/code><\/pre> <\/P>Následně je vytvořen <\/SPAN>MapView<\/FONT> , který vykresluje mapu v HTML kontejneru. Při tom je také nastavena počáteční pozice na Palm Springs:<\/SPAN><\/P>const view = new MapView({
container: "viewDiv",
map: map,
center: [-116.5453, 33.8303],
zoom: 13
});<\/code><\/pre> <\/P>Centrální funkcí demo je načítání Points of Interest (POIs) z CSV souboru. Tento soubor je předtím nahrán do Feature-Service. Následující kód ukazuje, jak je tento servis připojen jako <\/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>Vlastnost <\/SPAN>popupTemplate<\/FONT> definuje, jaké informace se zobrazí po kliknutí na objekt. Renderer zajišťuje, že různé typy POIs jsou zobrazeny odlišně.<\/P>Pro výpočet trasy se používá <\/SPAN>RouteTask<\/FONT>, kterému jsou předány startovní a cílový bod. Po úspěšném výpočtu je trasa zobrazena jako <\/SPAN>Graphic<\/FONT> na mapě:<\/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>Parametry <\/SPAN>routeParams<\/FONT> obsahují mimo jiné geometrie startovního a cílového bodu a volitelné nastavení jako dopravní informace.<\/P>Aplikace také umožňuje zapnout nebo vypnout dopravní data z našeho ArcGIS Living Atlas of the World. To se provádí jednoduchým přepínačem viditelnosti:<\/P>trafficLayer.visible = !trafficLayer.visible;<\/code><\/pre> <\/P>ArcGIS Location Platform umožňuje dotazovat výšku v konkrétním bodě. K tomu se používá náš Elevation-Service, který vrací Z-souřadnici (výšku) pro daný bod:<\/SPAN><\/P>elevationLayer.queryElevation(point).then(function(result) {
console.log("Elevation:", result.geometry.z);
});<\/code><\/pre> <\/P>Je třeba poznamenat, že tato funkce funguje pouze s určitými Basemaps, které obsahují výškové informace.<\/P>Nakonec aplikace nabízí také přístup k našemu Places-Service, pomocí kterého lze vyhledávat blízká místa určitých kategorií. V následujícím příkladu jsou vyhledána místa jako kavárny nebo muzea poblíž středu mapy:<\/P>placesService.searchNearby({
location: view.center,
categories: ["Coffee shop", "Museum"],
maxResults: 10
}).then(showResults);<\/code><\/pre> <\/P>Při práci s ArcGIS Location Platform by měli Developer vzít v úvahu některé speciální případy. Například je nutné vytvořit platný API-Key v <\/SPAN>secret.js<\/FONT>, aby bylo možné používat odpovídající Location Services. Také může dojít k problémům při použití vlastních CSV souborů, pokud nejsou kódovány v UTF-8 nebo obsahují speciální znaky. Dopravní data fungují pouze s určitými Basemaps, což by mělo být zohledněno při konfiguraci.<\/P>ArcGIS Location Platform nabízí impozantní škálu funkcí, které lze integrovat do moderních webových aplikací několika řádky kódu. Ať už routing, vyhledávání Places nebo zobrazení dopravních dat – je to mocný nástroj pro všechny, kdo chtějí využít geoinformace.<\/P>Pokud chcete sami vyvíjet aplikaci s našimi Location Services, doporučujeme forknout oficiální Demo-Repository a experimentovat s vlastními scénáři použití. Dokumentace je jasně strukturovaná a příklady se snadno přizpůsobují.<\/P>Stačí se podívat na náš Developer Hub.<\/P>