インストール ガイド
出典:ArcGIS Maps SDK for Flutter - Guide - Install and set up
このインストール ガイドでは、ArcGIS Maps SDK for Flutter のインストールとセットアップ手順を紹介します。マップを表示する方法については「アプリの作成」のチュートリアルをご覧ください。
ArcGIS Maps SDK for Flutter をインストールする前に、開発マシンが 動作環境 を満たしていることを確認してください。
Flutter 3.44.x に関する注意事項と依存関係の要件につきましては、こちらをご覧ください。
Flutter パッケージ リポジトリー
ArcGIS Maps SDK for Flutter は、Flutter のパッケージ リポジトリーである pub.dev を使用して、VS Code で Flutter プロジェクトに統合することができます。
VS Code
VS Code で Flutter プロジェクトを開きます。
View > Terminal を開きます。
プロジェクトの依存関係に
arcgis_mapsパッケージを追加します。dart pub add arcgis_mapsdart pub addは、arcgis_mapsパッケージを依存関係としてpubspec.yamlに追加し、pubspec.yamlを解決するために依存関係を取得します。以下のコマンドを実行して、すべての依存関係を最新の互換性のあるバージョンにアップデートします。
flutter pub upgradeこのコマンドを実行すると、アプリが依存しているパッケージのみがアップデートされます。
arcgis_maps_coreをダウンロードしてインストールします。dart run arcgis_maps installこのコマンドを実行すると、ArcGIS Maps のコア機能のバイナリー配布が Flutter プロジェクトにダウンロードされ、セットアップされます。ソース管理にチェックする場合は、
.gitignoreファイルにarcgis_maps_coreを追加することをお勧めします。
この API を使用するには、以下の import 文を dart コード(.dart)ファイルに追加します。
import 'package:arcgis_maps/arcgis_maps.dart';プラットフォーム固有の構成
Android、iOS、またはその両方のアプリを開発する際、Flutter のツールセットでは、いくつかの設定バージョンに対してデフォルト値が設定されています。これらは、新しいプロジェクトを作成する際にあらかじめ設定されます。以下に示す更新内容は、最新バージョンの ArcGIS Maps SDK for Flutter パッケージを使用してアプリケーションをコンパイルするために、これらのデフォルト設定に変更を加える必要があるものです。詳細については、システム要件のページをご覧ください。
以下の最低要件を更新します。
- Android の最低 SDK バージョン:
28
android/app/build.gradle.ktsdefaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId = "com.esri.flutter_project_template" // You can update the following values to match your application needs. // For more information, see: https://flutter.dev/to/review-gradle-config. minSdk = 28 // 変更 targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName }- Android の最低 SDK バージョン:
パーミッションを必要とする機能
ArcGIS Maps SDK for Flutter に依存するアプリケーションをデプロイするには、以下の権限が必要です。オンライン リソースにアクセスする権限とデバイスの GPS にアクセスする権限を追加します。なお、アプリが位置情報へのアクセスを必要とする API を実際に使用している場合にのみ、ユーザーに位置情報のアクセス許可を求めるプロンプトが表示されます。
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 追加開始 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 追加終了 -->
<application
android:label="flutter_project_template"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">ユーザー認証の有効化
ユーザー認証にシステム ブラウザーの使用が必要な場合は、以下を追加する必要があります。
</activity> <!-- application タグ内の activity タグ-->
<!-- 追加開始 -->
<activity
android:name="com.linusu.flutter_web_auth_2.CallbackActivity"
android:exported="true">
<intent-filter android:label="flutter_web_auth_2">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="YOUR_CALLBACK_URL_SCHEME_HERE" />
</intent-filter>
</activity>
<!-- 追加終了 -->YOUR_CALLBACK_URL_SCHEME_HERE を、ポータルで OAuth 認証情報を設定したときに使用したリダイレクト URL のスキームに置き換えてください。 これは、ログイン ワークフローが完了した後、ブラウザーがアプリに通信して戻るために必要です。
Flutter 3.44 以降、iOS アプリケーションのデフォルトの依存関係管理ツールとして、CocoaPods に代わって Swift Package Manager が採用されました。この変更に対応するため、Flutter Maps SDK パッケージである arcgis_maps では、CocoaPods から Swift Package Manager への移行が行われました。Swift Package Manager を使用して ArcGIS Maps SDK for Flutter パッケージを利用するように iOS プロジェクトを設定する方法については、新しい iOS アプリケーションまたは既存の iOS アプリケーションの移行を参照してください。
新しい iOS アプリケーション
arcgis_maps パッケージを依存関係として使用する新しい iOS アプリケーションの場合、iOS Deployment Target をバージョン 18 に更新し、アプリケーションで Swift Package Manager を有効にする必要があります。プロジェクトに必要な変更を加えるには、以下の手順に従ってください。
ターミナルを開き、Flutter プロジェクトのディレクトリーに移動します。
以下のコマンドを実行して、プロジェクトのデフォルトの Xcode ワークスペースを開きます。
open ios/Runner.xcworkspaceXcode で、
Runnerプロジェクトを選択します。Build Settingsタブに移動し、Deploymentセクションを見つけます。iOS Deployment Targetをバージョン18に設定し、Xcode を閉じます。
Flutter 3.44 以降、Swift Package Manager はデフォルトで有効になっています。Swift Package Manager が有効になっていることを確認するには、2 つの方法があります。1 つ目の方法は、単一のプロジェクトに対して Swift Package Manager を有効にするものです。これにより、グローバルな設定に関係なく、ローカル開発環境でそのプロジェクトを読み込むすべてのユーザーが Swift Package Manager を使用するようになります。
pubspec.yaml# ... flutter: uses-material-design: true #追加開始 config: enable-swift-package-manager: true #追加終了2 つ目のアプローチは、すべてのプロジェクトに対して Swift Package Manager をグローバルに有効にするもので、Flutter 3.44 以降ではデフォルトで有効になっています。以下のコマンドを実行することで、この機能を有効にし、確認することができます。
flutter config --enable-swift-package-manager詳細については、Flutter のドキュメント「アプリ開発者向け Swift Package Manager(英語)」を参照し、プロジェクトに最適なアプローチを選択してください。
既存の iOS アプリケーションの移行
バージョン 300.0 以前の arcgis_maps パッケージを使用している既存の iOS アプリケーションについては、以下の手順に従って、プロジェクトを Swift Package Manager に対応するように移行してください。
開発用マシンがシステム要件を満たしていることを確認してください。
Flutter 3.44 以降、Swift Package Manager はデフォルトで有効になっています。Swift Package Manager が有効になっていることを確認するには、2 つの方法があります。1 つ目の方法は、単一のプロジェクトに対して Swift Package Manager を有効にするものです。これにより、グローバルな設定に関係なく、ローカル開発環境でそのプロジェクトを読み込むすべてのユーザーが Swift Package Manager を使用するようになります。
pubspec.yaml# ... flutter: uses-material-design: true #追加開始 config: enable-swift-package-manager: true #追加終了2 つ目のアプローチは、すべてのプロジェクトに対して Swift Package Manager をグローバルに有効にするもので、Flutter 3.44 以降ではデフォルトで有効になっています。以下のコマンドを実行することで、この機能を有効にし、確認することができます。
flutter config --enable-swift-package-manager詳細については、Flutter のドキュメント「アプリ開発者向け Swift Package Manager(英語)」を参照し、プロジェクトに最適なアプローチを選択してください。
ターミナルを開き、Flutter プロジェクト ディレクトリー内の
iosフォルダーに移動してください。Podfile、Podfile.lock、およびPodsディレクトリーを削除してください。以下のコマンドを実行してください。
pod deintegrate以下のコマンドを実行して、プロジェクトのデフォルトの Xcode ワークスペースを開きます。
open Runner.xcworkspaceワークスペースから Pods プロジェクトを削除してください。

deintegrate で検出されなかった場合は、Runner プロジェクトから Pods の参照を削除してください。
Runnerターゲットの全般タブで、iOS のMinimum Deploymentを手動で18.0以上に更新してください。
プロジェクトの性質上、CocoaPods を完全に解除することが適切でない場合は、Podfile 内の Runner ターゲットから Runtimecore および arcgis_maps_ffi の Pod を削除することで、arcgis_maps の CocoaPods 設定のみを削除することができます。
target 'Runner' do
use_frameworks!
pod 'Runtimecore', :podspec => '../arcgis_maps_core/ios/Runtimecore.podspec'
pod 'arcgis_maps_ffi', :podspec => '../arcgis_maps_core/ios/arcgis_maps_ffi.podspec'
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
target 'RunnerTests' do
inherit! :search_paths
end
endパーミッションを必要とする機能
ArcGIS Maps SDK for Flutter の一部の機能には、追加の権限が必要です。 ArcGIS Maps SDK for Flutter に依存する iOS アプリを App Store にデプロイするには、以下の記述が必要です。 位置情報へのアクセス許可を必要とする API をアプリがアクティブに使用している場合のみ、ユーザーに位置情報へのアクセス許可を求めるプロンプトが表示されます。
- 常にユーザーの位置情報へのアクセスを要求する(NSLocationAlwaysAndWhenInUseUsageDescription)
- アプリがフォアグラウンドで実行されている間、ユーザーの位置情報へのアクセスを要求する(NSLocationWhenInUseUsageDescription)
次のコード例では、情報プロパティ リストにこれらを含めています。
<dict>
<!-- 追加開始 -->
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Location permission is required to view your position.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Location permission is required to view your position.</string>
<!-- 追加終了 -->
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>追加ダウンロード
サンプル コードとデータの追加ソースは、あなたの開発プロジェクトを強化するために利用可能です。本ガイドは、スタンドアロンの開発者向けドキュメントとしてダウンロードすることもできます。
サンプル コード
独自のアプリケーションに追加できるさまざまな強力な機能を説明した、実践的なサンプル コードを入手できます。 サンプルを検索し、サンプル ドキュメントで関連するコードを参照するか、サンプル リポジトリからコードをダウンロードしてローカルで実行します。
スタンドアロンの開発者向けドキュメント
ダウンロード ページ から、開発者向けドキュメントをアーカイブとしてダウンロードできます。アーカイブには、ローカル Web サーバからドキュメントを提供する手順が含まれているため、インターネットに接続しなくてもドキュメントにアクセスできます。スタンドアロン ドキュメントには、開発者ガイド、API リファレンス、チュートリアル、およびサンプル ドキュメントが含まれています。このドキュメントは、パブリックなインターネット上ではなく、ローカルのスタンドアロン コンピューターまたは内部ネットワーク上で実行するように設計されています。
ローカルでドキュメントを公開する方法
- 使用する SDK のドキュメントをダウンロードします。 ダウンロードしたファイルは .zip アーカイブ形式になっています。
- アーカイブをローカル フォルダに解凍します。 解凍されたアーカイブには、
publicとinstallの 2 つのサブフォルダがあります。 installフォルダ内のREADME.mdファイルを開き、選択した Web サーバーの指示に従います。
補足データ
投影エンジン データ
測地系変換は、ある空間基準から別の空間基準へジオメトリーを投影する際に、2つの空間基準の基礎となる測地系に違いがある場合に使用されます。測地系変換は、数学的に定義する(方程式ベースの変換)ことも、外部のサポート ファイルに依存する(グリッドベースの変換)ことも可能です。アプリでグリッドベースの変換を使用する場合、投影エンジン ファイルが存在する必要があります。投影エンジン ファイルが無い状態で変換をしようとすると、エラーが発生します。API は、必要なファイルがローカル ファイル システムで利用可能かどうかを検出できます。
グリッドベースの変換を使用している場合は、ダウンロード ページからサポートする 投影エンジン ファイルをダウンロードしてください。 座標系、投影、測地系変換の操作に関する詳細は、Spatial references トピックを参照してください。
Electronic Navigational Charts (ENC)
航海用電子海図(ENC)は、水路や海上の情報を可視化し、分析するためのジオリファレンスされたベクター データセットです。SDK は、国際水路機関(IHO)の S-57 規格 に準拠した ENC をサポートしています。
航海用電子海図 (ENC) を使用する場合は、ダウンロード ページから hydrography データをダウンロードします。
ENC データの操作の詳細については、Display electronic navigational charts のトピックを参照してください。