出典:ArcGIS Maps SDK for Flutter - Guide - Install and set up
このインストール ガイドでは、ArcGIS Maps SDK for Flutter (バージョン 200.x) のインストールとセットアップ手順を紹介します。マップを表示する方法については「アプリの作成」のチュートリアルをご覧ください。
ArcGIS Maps SDK for Flutter をインストールする前に、開発マシンが 動作環境 を満たしていることを確認してください。
ArcGIS Maps SDK for Flutter は、Flutter のパッケージ リポジトリである pub.dev を使用して、VS Code で Flutter プロジェクトに統合することができます。
VS Code で Flutter プロジェクトを開きます。
View > Terminal を開きます。
プロジェクトの依存関係に arcgis_maps
パッケージを追加します。
dart pub add arcgis_maps
dart pub add
は、arcgis_maps
パッケージを依存関係として pubspec.yaml
に追加し、pubspec.yaml
を解決するために依存関係を取得します。
以下のコマンドを実行して、すべての依存関係を最新の互換性のあるバージョンにアップデートします。
flutter pub upgrade
このコマンドを実行すると、アプリが依存しているパッケージのみがアップデートされます。
arcgis_maps_core
をダウンロードしてインストールします。
dart run arcgis_maps install
このコマンドを実行すると、ArcGIS Maps のコア機能のバイナリ配布が Flutter プロジェクトにダウンロードされ、セットアップされます。
この API を使用するには、以下の import 文を dart コード(.dart)ファイルに追加します。
import 'package:arcgis_maps/arcgis_maps.dart';
Android、iOS、またはその両方向けに開発するには、Flutter プロジェクトで以下の設定変更も行う必要があります。
以下の最低要件を更新します。
25.2.9519653
26
android/app/build.gradle
android {
namespace = "com.esri.flutter_project_template"
compileSdk = flutter.compileSdkVersion
ndkVersion = "25.2.9519653" // 変更
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
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 = 26 // 変更
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
}
}
`
Kotlin のバージョンを更新します。
1.9.0
android/settings.gradle
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.1.0" apply false
id "org.jetbrains.kotlin.android" version "1.9.0" apply false //変更
}
ArcGIS Maps SDK for Flutter に依存するアプリケーションをデプロイするには、以下の権限が必要です。オンライン リソースにアクセスする権限を追加し、デバイスの GPS にアクセスする権限を追加します。位置情報へのアクセス許可を必要とする API をアプリがアクティブに使用している場合のみ、ユーザーは位置情報へのアクセス許可を提供するよう促されることに注意してください。
android/app/src/main/AndroidManifest.xml
<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">
添付ファイルの追加やエクスポートなど、デバイスのストレージに対する読み取り/書き込み操作が必要な場合は、以下の追加権限を追加する必要があります。
android/app/src/main/AndroidManifest.xml
<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">
ユーザー認証にシステム ブラウザーの使用が必要な場合は、以下を追加する必要があります。
android/app/src/main/AndroidManifest.xml
</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 16.0 以上を設定します。 行のコメントを解除し、バージョン番号を更新します。
ios/Podfile
# Uncomment this line to define a global platform for your project
platform :ios, '16.0' #変更
Runtimecore
ポッドと arcgis_maps_ffi
ポッドを Runner
ターゲット セクションに追加します。
ios/Podfile
target '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
end
pod update
を使用して Pods を設定します。
cd ios && pod update && cd ..
ArcGIS Maps SDK for Flutter の一部の機能には、追加のパーミッションが必要です。 ArcGIS Maps SDK for Flutter に依存する iOS アプリを App Store にデプロイするには、以下の記述が必要です。 位置情報へのアクセス許可を必要とする API をアプリがアクティブに使用している場合のみ、ユーザーに位置情報へのアクセス許可を求めるプロンプトが表示されることに注意してください。
次のコード例では、情報プロパティ リストにこれらを含めています。
ios/Runner/Info.plist
<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>
サンプル コードとデータの追加ソースは、あなたの開発プロジェクトを強化するために利用可能です。本ガイドは、スタンドアロンの開発者向けドキュメントとしてダウンロードすることもできます。
独自のアプリケーションに追加できるさまざまな強力な機能を説明した、実践的なサンプル コードを入手できます。 サンプルを検索し、サンプル ドキュメントで関連するコードを参照するか、サンプル リポジトリからコードをダウンロードしてローカルで実行します。
開発者向けドキュメントは、ダウンロード ページからアーカイブとしてダウンロードできます。 アーカイブには、インターネットに接続しなくてもドキュメントにアクセスできるように、ローカルのウェブ サーバーからドキュメントを提供する手順が含まれています。 スタンドアロン ドキュメントには、開発者ガイド、API リファレンス、チュートリアル、サンプル ドキュメントが含まれています。 このドキュメントは、ローカルのスタンドアロン コンピューターまたは内部ネットワーク上で実行するように設計されており、公共のインターネット上では実行できません。
ダウンロードしたドキュメントのアーカイブを解凍するには、無料のオープンソース ファイル アーカイブ ユーティリティ7-Zip をお勧めします。
ドキュメントをローカルに提供するために:
public
と install
の 2 つのサブフォルダがあります。install
フォルダ内の README.md
ファイルを開き、選択した Web サーバーの指示に従ってください。ライブ ドキュメント サイトはリリースとリリースの間に定期的に更新されますが、スタンドアロン ドキュメントは静的で、最初のリリース後は更新されません。
測地系変換は、ある空間参照から別の空間参照にジオメトリを投影する必要がある場合に使用されます。 測地系変換は、数学的に定義する方法(方程式ベースの変換)と、外部のサポート ファイルに依存する方法(グリッド ベースの変換)があります。 アプリでグリッド ベースの変換を使用する場合、投影エンジン のデータ ファイルが必要です。 API は、必要なファイルがローカルのファイル システムで利用可能かどうかを検出できます。
アプリでグリッド ベースの変換が必要な場合は、ダウンロード ページからサポートする 投影エンジン ファイルをダウンロードできます。 座標系、投影、測地系変換の操作に関する詳細は、Spatial references トピックを参照してください。