Inleiding
ArcGIS Platform is 2021 jaar 5 maand gestart met binnenlandse service, een PaaS-product voor kaartapp-ontwikkelaars. PaaS product.
Meer details over ArcGIS Platform vindt u in de blogpost "ArcGIS Platform (PaaS) is gestart met binnenlandse service!".In het artikel "
Introductie van het ArcGIS Platform ~Functies en prijzen van locatie-services~ " hebben we de locatie-services die beschikbaar zijn op het ArcGIS Platform besproken. In dit artikel introduceren we het assortiment van API/SDK's om deze locatie-services te gebruiken en belangrijke punten bij het kiezen ervan.Het ArcGIS Platform biedt verschillende API/SDK's die kunnen worden gebruikt afhankelijk van het doel. Globaal gezien zijn er de volgende vier categorieën:① Ingebed/Automatisering
② Web
③ Mobiel/Desktop
④ Game-engineVoor "② Web" en "③ Mobiel/Desktop" zijn er ook low-code tools beschikbaar waarmee je met minder code kunt ontwikkelen.
API/SDK assortiment① Ingebed/AutomatiseringKan worden gebruikt voor ingebedde processen of automatisering. Bijvoorbeeld functies om de locatie of meetgegevens van sensoren bij te werken naar de webservices van het ArcGIS Platform, periodieke data-updates en back-ups, of server-side geocoding. De volgende API's zijn beschikbaar voor deze doeleinden:
.ArcGIS REST API
De ArcGIS REST API biedt alle functies die beschikbaar zijn in de locatie-services van het ArcGIS Platform. Ook kan het kaartafbeeldingen (JPEG/PNG-formaat) genereren binnen een opgegeven gebied.ArcGIS REST JSEen JavaScript-bibliotheek die is verpakt om de ArcGIS REST API gemakkelijker te gebruiken. Omdat het een JavaScript-bibliotheek is, werkt het goed samen met Node.js en kan het server-side locatiefuncties gebruiken. Beschikbare functies zijn onder andere geocoding, verkeersnetwerkanalyse, dataquery en -bewerking, authenticatie (API-sleutel, OAuth), maar er is geen kaarttekenfunctie.Voorbeeldcode voor geocodingArcGIS API for PythonDeze biedt uitgebreide functies voor batchverwerking en automatisering zoals maken, bijwerken en back-uppen van GIS-data, en kan gecombineerd worden met Python-specifieke rekenbibliotheken voor ruimtelijke analyse. Er is ook een component voor kaartweergave beschikbaar in Jupyter Lab.Gebruik in Jupyter LabBelangrijke punten bij het kiezen van API voor ingebed/automatisering: Als je server-side verwerking wilt koppelen met Node.js, gebruik dan ArcGIS REST JS; voor automatisering zoals data-updates gebruik je ArcGIS API for Python. Voor andere toepassingen of functies die niet beschikbaar zijn in deze twee, wordt meestal de ArcGIS REST API gebruikt.② WebEr zijn API's beschikbaar voor het ontwikkelen van apps die kaarten weergeven en locatiefuncties gebruiken in web browsers. Je kunt kaartapps ontwikkelen met open source of andere ArcGIS API's en derde partij API's. De beschikbare API's zijn:ArcGIS API for JavaScriptDeze API ondersteunt 2D/3D, heeft rijke visualisaties, geavanceerde locatiefuncties en widget-gebaseerde ontwikkeling. Veel locatiefuncties worden als widgets aangeboden waardoor je minder hoeft te coderen. ES-modules zijn ook beschikbaar, wat naadloze ontwikkeling met React of Vue.js mogelijk maakt. Als je voor het eerst een kaartapp ontwikkelt met het ArcGIS Platform, raden we aan deze API te gebruiken.Esri LeafletLeaflet is een populaire lichte open source kaartbibliotheek. Om locatie-services van het ArcGIS Platform te gebruiken binnen Leaflet is er een plugin genaamd Esri Leaflet beschikbaar. Sommige locatiefuncties van het ArcGIS Platform gebruiken de ArcGIS REST JS bibliotheek.
Mapbox GL JS integratie / OpenLayers integratieMet Mapbox GL JS en OpenLayers kun je apps ontwikkelen die locatie-services van het ArcGIS Platform gebruiken door de ArcGIS REST JS bibliotheek te laden.In onderstaande afbeelding wordt adreszoekopdracht uitgevoerd met geocoding functie van het ArcGIS Platform in apps ontwikkeld met Mapbox GL JS en OpenLayers. De native basemaps (Mapbox: Zenrin-kaarten, OpenLayers: OpenStreetMap) worden getoond maar je kunt ook basemaps van het ArcGIS Platform tonen.Low-code tools voor web app ontwikkelingEr zijn twee low-code tools voor web app ontwikkeling: ArcGIS Experience Builder en ArcGIS Web AppBuilder. Met deze tools kun je apps maken door widgets samen te stellen via UI zonder coderen, maar ook uitbreiden via coderen.
ArcGIS Experience Builder (Developer Edition)Je kunt widgets plaatsen en grootte aanpassen om app-layout vrij te configureren. Voor uitbreiding via coderen wordt vooral React gebruikt. Hoewel deze tool minder widgets heeft dan Web AppBuilder wordt dit continu uitgebreid.ArcGIS Web AppBuilder (Developer Edition)Je kunt thema's kiezen waarbij kaarten centraal staan voor app-layouts. Voor uitbreiding via coderen wordt vooral Dojo gebruikt.Belangrijke punten bij keuze van web APIGebruik een bibliotheek waar je vertrouwd mee bent (Leaflet, Mapbox, OpenLayers). Als je voor het eerst een kaartapp ontwikkelt raden we aan de rijk uitgeruste en makkelijk implementeerbare ArcGIS API for JavaScript te gebruiken.Als je alleen geocodeerresultaten nodig hebt zonder kaartweergave op webapp kun je ook ArcGIS REST JS gebruiken.
Als je zonder coderen wilt ontwikkelen of minder wilt coderen kun je ook low-code tools gebruiken.ArcGIS Experience Builder biedt vrije layoutconfiguratie en ontwikkeling met React; ArcGIS Web AppBuilder richt zich op kaartcentrale layouts en ontwikkeling met Dojo.③ Mobiel/Desktop
Er zijn SDK's beschikbaar om native apps te ontwikkelen die kaarten weergeven en locatiefuncties gebruiken op mobiele of desktopapparaten.
GIS データの作成・更新・バックアップ等のバッチ処理や自動化処理を行う際や、Python 特有の演算ライブラリと組み合わせて空間解析を行う際に利用できる機能が豊富に用意されています。
Jupyter Lab 上で利用できる地図表示のためのコンポーネントもあります。
Jupyter Lab 上での利用
組み込み/自動化用の API の選択のポイント
サーバーサイドの処理で Node.js と連携する場合は ArcGIS REST JS、データ更新等の自動化処理に利用する場合は ArcGIS API for Python を利用できます。それ以外での用途や、ArcGIS REST JS 及び ArcGIS API for Python で用意されていない機能を使いたい場合は、ArcGIS REST API を利用するのが一般的な使い方です。
② Web
Web ブラウザ上で地図表示やロケーション機能を利用するアプリを開発する際に利用できる API が用意されています。オープンソースを含む ArcGIS の API、および、サードパーティの API を使用して地図アプリを開発できます。利用可能な API には以下のものがあります。
2D/3D 対応、豊富なビジュアライゼーション、高度なロケーション機能、ウィジェットを使用した開発などが特長の API です。様々なロケーション機能がウィジェットとして提供されており、コーディング量を抑えてアプリを開発できます。また、ESモジュールも公開されているので、React や Vue.js などでの開発もシームレスに行えます。
ArcGIS Platform を使用してはじめて地図アプリを開発する場合は、この API を利用することをお勧めします。
Leaflet はオープンソースでメジャーな軽量な地図ライブラリです。その Leaflet で ArcGIS Platform のロケーションサービスを利用するために、Esri Leaflet と呼ばれる Leaflet のプラグインが用意されています。ArcGIS Platform の一部のロケーション機能については、ArcGIS REST JS のライブラリを読み込んで使用します。
Mapbox GL JS 及び OpenLayers で開発したアプリ上で、ArcGIS Platform のロケーションサービスを利用できます。アプリ上で ArcGIS REST JS のライブラリを読み込んでロケーション機能を使用します。
下図では Mapbox GL JS と OpenLayers で開発したアプリ上で ArcGIS Platform のジオコーディング機能を使って住所検索しています。図ではそれぞれのライブラリのネイティブのベースマップ(Mapbox:ゼンリン地図、OpenLayer:OpenStreetMap)を表示していますが、代わりに ArcGIS Platform のベースマップを表示することもできます。
Web アプリ開発用のローコードツール
Web アプリ開発用のローコードツールには ArcGIS Experience Builder と ArcGIS Web AppBuilder の2つがあります。それぞれ専用のツールを使いウィジェットを構成していくことで、UI 操作のみでアプリを作成できます。コーディングでの機能拡張(ウィジェットを開発)にも対応しています。
※ 両ツールとも現在 API キーには対応していませんが、今後対応予定です。
ウィジェットの配置位置やサイズ変更などを行い、アプリのレイアウトを自由に設定することができます。コーディングで機能拡張する際は、主に React を使用します。新しいツールのため、ArcGIS Web AppBuilder と比較すると利用可能な機能(ウィジェット)が少ないですが、随時拡充されています。
地図が中心の組み込みのテーマからアプリのレイアウトを選択できます。コーディングで機能拡張する際は、主に Dojo を使用します。
Web 用の API の選択のポイント
使い慣れているライブラリ(Leaflet、Mapbox、OpenLayers)がある場合はそちらを利用します。初めて地図アプリを開発する場合は、ArcGIS Platform のロケーション機能の実装が容易で機能も豊富な ArcGIS API for JavaScript を利用することをお勧めします。
Web アプリ上で地図表示が不要(ジオコーディングの処理結果だけが必要など)な場合は、ArcGIS REST JS も利用できます。
また、ノンコーディングで作成したい、コーディング量を抑えたいといった場合はローコードツールも利用可能です。ArcGIS Experience Builder は自由なレイアウト設定と React での開発に対して、ArcGIS Web AppBuilder は地図が中心のレイアウトと Dojo での開発が大きな違いとして挙げられます。
③ モバイル/デスクトップ
モバイルやデスクトップ端末上で地図の表示やロケーション機能を利用するネイティブ アプリを開発する際に利用できる SDK が用意されています。
ArcGIS Platform の Web サービスを利用したアプリだけでなく、完全なオフライン環境でも利用できるアプリを開発できるのが特長の SDK です。Android、iOS、.NET、Java、Qt の開発プラットフォームごとにそれぞれ SDK が用意されています。AR/VR アプリ開発用のオープンソースのツールキットも公開されています。
下図では各 ArcGIS Runtime SDK の実行環境と開発環境をまとめています。アプリでサポートする OS や開発者のスキル等を考慮して、最適な SDK を選択できます。
各 SDK の実行環境と開発環境
※ Java と Qt 用の SDK は ESRIジャパンにおける製品保守サポート等の対象外です。利用方法に関するご質問は Esri Community (Java / Qt) から直接お問い合わせをお願いいたします。
モバイル/デスクトップ アプリ開発用のローコードツール
機能やレイアウトごとに用意されたテンプレートを用いて、UI 操作だけでネイティブ アプリを開発できます。Qt を使用したコーディングによる機能拡張も行えます。クロスプラットフォームにも対応しており、ひとつのソースコードで Windows、Ubuntu、macOS、Android、iOS 向けにアプリをビルドできます。
※ ArcGIS AppStudio はESRIジャパンにおける製品保守サポート等の対象外です。利用方法に関するご質問は Esri Community から直接お問い合わせをお願いいたします。
モバイル/デスクトップ用の SDK の選択のポイント
ArcGIS Runtime SDK の各 SDK(Android / iOS / .NET / Java / Qt) bieden in principe dezelfde locatiefunctionaliteit, dus kunt u de beste SDK kiezen op basis van de vereisten van de te ontwikkelen app en de vaardigheden van de ontwikkelaar. SDK selecteren.
Als u zonder coderen wilt maken of de hoeveelheid codering wilt beperken, kunt u ook het low-code tool ArcGIS AppStudio gebruiken.
④ Game-engine
Unity en Unreal Engine zijn er respectievelijk plugins beschikbaar. Door deze plugins te gebruiken, kunt u de basemap, hoogtegegevens en 3D gegevens die worden gepubliceerd op het ArcGIS Platform weergeven in zowel Unity als Unreal Engine
ArcGIS Developer 開発リソース集
API/SDK
組み込み/自動化
ArcGIS REST API
ArcGIS REST JS
ArcGIS API for Python
Web
ArcGIS API for JavaScript
Esri Leaflet
Mapbox GL JS 連携
OpenLayers 連携
ArcGIS Experience Builder (Developer Edition)
ArcGIS Web AppBuilder (Developer Edition)
- モバイル/デスクトップ
ArcGIS Runtime SDK
ArcGIS AppStudio
ゲーム エンジン