地図アプリ開発を行いたいとお考えになったとき、皆さまはどのような基準で API/SDK を選定しますか?
無償で開発・評価ができる、地図が見やすい、利用できるデータが揃っている・・・
今回はこのような条件を備えたおすすめの地図アプリ開発用の API/SDK をご紹介します。
その前に、皆さまは「GIS」という言葉をご存知ですか?
GIS とは「Geographic Information System:地理情報システム」の略で、位置に関連づけられたさまざまな情報を、作成、加工、管理、分析、可視化、共有するための情報技術のことを指します。お気づきかもしれませんが、地図アプリ開発を行おうとしている皆さまはすでに GIS の世界に足を踏み入れているのです。
この GIS の世界で多くの方から知られている製品のひとつが「ArcGIS(アークジーアイエス)」です。
ArcGIS はすぐに利用可能な豊富な地図データや、地理情報を作成、分析、可視化するためのデスクトップ アプリ、モバイル アプリ、Web アプリ、クラウドサービス、サーバー製品等から構成され、システム形態や用途に応じて自由に組み合わせて導入できます。
その ArcGIS 製品群の中に、地図アプリ開発を行うための API/SDK も含まれています。
ArcGIS の API/SDK を利用すれば、単純な地図表示だけでなく、情報を最適に可視化したり、地理情報からさまざまな分析を行ったりと、一歩先を行く地図アプリを実装可能です。
ArcGIS の API/SDK を利用したアプリの開発・評価は無償から始められます。背景の地図データや主題に使用するデータも、ArcGIS のクラウドサービスで公開されているものの中から選んで使用することができます。とにかく地図アプリを作ってみたい、どんなことができるのか知りたい、という方におすすめの製品です。
ArcGIS には利用用途によって使い分け可能な API/SDK がいくつか用意されています。用途を大きく分けると次の4つに分けられます。
① 組み込み/自動化
② Web
③ モバイル/デスクトップ
④ ゲームエンジン
「② Web」と「③ モバイル/デスクトップ」 用にはノーコーディングまたはコーディングで既存機能を拡張してアプリを開発できる、ノーコード/ローコードツールも用意されています。
API/SDK のラインナップ
組み込み処理や自動化処理等で利用できます。例えば、センサーの位置や計測情報を Web サービスに更新するような機能や、定期的にデータを更新・バックアップする機能、サーバーサイドで住所検索を行う機能等の用途で利用できます。これらの用途で利用可能な API には以下のものがあります 。
ArcGISで提供される全ての開発キットは、この ArcGIS REST API をベースに開発されています。REST エンドポイントを提供しており、Web サービスに対して HTTP リクエストを送り、その結果が JSON で返されます。JSON の結果を解析して、自身のプログラムに組み込んで利用できます。
ArcGIS REST API をより使いやすくするためにラッピングされた JavaScript ライブラリです。JavaScript ライブラリなので、Node.js との親和性も高く、サーバーサイドでロケーション機能を利用できます。
住所検索のコード例
GIS データの作成・更新・バックアップ等のバッチ処理や自動化処理を行う際や、Python 特有の演算ライブラリと組み合わせて空間解析を行う際に利用できる機能が豊富に用意されています。Jupyter Lab 上で利用できる地図表示のためのコンポーネントもあります。
Jupyter Lab 上での利用
Web ブラウザ上で地図表示や地図機能を利用するアプリを開発する際に利用できる API やノーコード/ローコードツールが用意されています。
2D/3D 対応、豊富なビジュアライゼーション、高度な地図機能、ウィジェットを使用した開発等が特長の API です。様々な地図機能がウィジェットとして提供されており、コーディング量を抑えてアプリを開発できます。また、ESモジュールも公開されているので、React や Vue.js 等での開発もシームレスに行えます。
Web アプリ開発用のノーコードツールには ArcGIS Experience Builder と ArcGIS Web AppBuilder の2つがあります。それぞれ専用のツールを使いウィジェットを構成していくことで、UI 操作のみでアプリを作成できます。開発者向けの Developer Edition では、コーディングでの機能拡張(ウィジェットを開発)にも対応しています。
ウィジェットの配置位置やサイズ変更等を行い、アプリのレイアウトを自由に設定することができます。コーディングで機能拡張する際は、主に React を使用します。新しいツールのため、ArcGIS Web AppBuilder と比較すると利用可能な機能(ウィジェット)が少ないですが、随時拡充されています。
地図が中心の組み込みのテーマからアプリのレイアウトを選択できます。コーディングで機能拡張する際は、主に Dojo を使用します。
Web アプリを開発する際には、ご紹介した API とノーコード/ローコードツールの他にも Leaflet やOpenLayers 等の OSS の地図アプリ開発用の API 上で ArcGIS の地図機能を利用する仕組みも用意されています。詳細はこちらのブログ記事をご参照ください。
モバイルやデスクトップ端末上で地図の表示や地図機能を利用するネイティブ アプリを開発する際に利用できる SDK やノーコード/ローコードツールが用意されています。
ArcGIS Platform の Web サービスを利用したアプリだけでなく、完全なオフライン環境でも利用できるアプリを開発できるのが特長の SDK です。Android、iOS、.NET、Java、Qt の開発プラットフォームごとにそれぞれ SDK が用意されています。AR アプリ開発用のオープンソースのツールキットも公開されています。
下図では各 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 から直接お問い合わせをお願いいたします。
Unity 及び Unreal Engine 用にそれぞれプラグインが用意されています。プラグインを使用することで、ArcGIS の背景地図、標高データ、3D データを Unity 及び Unreal Engine 上で表示できます。現在はプレリリース版で利用可能な機能も限定的ですが、今後機能が拡充されていく予定です。
※ ArcGIS Maps SDK (Unity/Unreal Engine) はベータ プログラムとして米国Esri社が提供しているものであり、ESRIジャパンにおける製品保守サポート等の対象外です。ご質問やご不明点はベータ プログラム ページ の User Forums から直接お問い合わせをお願いいたします。
ArcGISで利用可能な API/SDK について紹介してきました。組み込み/自動化、Web、モバイル/デスクトップ、ゲームエンジン等の利用用途によって最適な API/SDK を選択できます。今回紹介した全ての API/SDK は、ArcGIS の開発者アカウントを作成することで、無償で開発・評価していただけます。ぜひお試しください!
API/SDK の紹介、導入・活用方法に関するご相談等はこちらからお気軽にご相談ください。
■関連リンク