インストール ガイド
出典:ArcGIS Maps SDK for Flutter - Guide - Install and set up
このインストール ガイドでは、ArcGIS Maps SDK for Flutter (バージョン 200.x) のインストールとセットアップ手順を紹介します。マップを表示する方法については「アプリの作成」のチュートリアルをご覧ください。
ArcGIS Maps SDK for Flutter をインストールする前に、開発マシンが 動作環境 を満たしていることを確認してください。
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 プロジェクトで以下の設定変更も行う必要があります。
以下の最低要件を更新します。
- Android コンパイル SDK:
36 - Android NDK バージョン:
27.0.12077973 - Android の最低 SDK バージョン:
28
android/app/build.gradle.ktsandroid { namespace = "com.esri.flutter_project_template" compileSdk = 36 // 変更 ndkVersion = "27.0.12077973" // 変更 compileOptions { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = JavaVersion.VERSION_11.toString() } defaultConfig { // 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">デバイスのストレージへのアクセスを許可
添付ファイルの追加やエクスポートなど、デバイスのストレージに対する読み取り/書き込み操作が必要な場合は、以下の追加権限を追加する必要があります。
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 追加開始 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<!-- 追加終了 -->
<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 のスキームに置き換えてください。 これは、ログイン ワークフローが完了した後、ブラウザーがアプリに通信して戻るために必要です。
iOS 17.0 以上を設定します。 行のコメントを解除し、バージョン番号を更新します。
ios/Podfile# Uncomment this line to define a global platform for your project platform :ios, '17.0' #変更Runtimecoreポッドとarcgis_maps_ffiポッドをRunnerターゲット セクションに追加します。ios/Podfiletarget 'Runner' do use_frameworks! use_modular_headers! #変更開始 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 endpod updateを使用して Pods を設定します。cd ios && pod update && cd ..
パーミッションを必要とする機能
ArcGIS Maps SDK for Flutter の一部の機能には、追加のパーミッションが必要です。 ArcGIS Maps SDK for Flutter に依存する iOS アプリを App Store にデプロイするには、以下の記述が必要です。 位置情報へのアクセス許可を必要とする API をアプリがアクティブに使用している場合のみ、ユーザーに位置情報へのアクセス許可を求めるプロンプトが表示されることに注意してください。
- ユーザーの位置情報へのアクセスを要求する(NSLocationUsageDescription)
- 常にユーザーの位置情報へのアクセスを要求する(NSLocationAlwaysAndWhenInUseUsageDescription)
- アプリがフォアグラウンドで実行されている間、ユーザーの位置情報へのアクセスを要求する(NSLocationWhenInUseUsageDescription)
次のコード例では、情報プロパティ リストにこれらを含めています。
<dict>
<!-- 追加開始 -->
<key>NSLocationUsageDescription</key>
<string>Location permission is required to view your position.</string>
<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 トピックを参照してください。