出典: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 プロジェクトにダウンロードされ、セットアップされます。ソース管理にチェックする場合は、.gitignore
ファイルに arcgis_maps_core
を追加することをお勧めします。
この API を使用するには、以下の import 文を dart コード(.dart)ファイルに追加します。
import 'package:arcgis_maps/arcgis_maps.dart';
Android、iOS、またはその両方向けに開発するには、Flutter プロジェクトで以下の設定変更も行う必要があります。
以下の最低要件を更新します。
27.0.12077973
26
android/app/build.gradle.kts
android {
namespace = "com.esri.flutter_project_template"
compileSdk = flutter.compileSdkVersion
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 = 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>
サンプル コードとデータの追加ソースは、あなたの開発プロジェクトを強化するために利用可能です。本ガイドは、スタンドアロンの開発者向けドキュメントとしてダウンロードすることもできます。
独自のアプリケーションに追加できるさまざまな強力な機能を説明した、実践的なサンプル コードを入手できます。 サンプルを検索し、サンプル ドキュメントで関連するコードを参照するか、サンプル リポジトリからコードをダウンロードしてローカルで実行します。
ダウンロード ページ から、開発者向けドキュメントをアーカイブとしてダウンロードできます。アーカイブには、ローカル Web サーバからドキュメントを提供する手順が含まれているため、インターネットに接続しなくてもドキュメントにアクセスできます。スタンドアロン ドキュメントには、開発者ガイド、API リファレンス、チュートリアル、およびサンプル ドキュメントが含まれています。このドキュメントは、パブリックなインターネット上ではなく、ローカルのスタンドアロン コンピューターまたは内部ネットワーク上で実行するように設計されています。
ダウンロードしたドキュメントのアーカイブを解凍するには、無料のオープンソース ファイル アーカイブ ユーティリティー 7-Zip をお勧めします。
ローカルでドキュメントを公開する方法
public
と install
の 2 つのサブフォルダがあります。install
フォルダ内の README.md
ファイルを開き、選択した Web サーバーの指示に従います。ライブ ドキュメント サイトはリリースとリリースの間に定期的に更新されますが、スタンドアロン ドキュメントは静的で、最初のリリース後は更新されません。
測地系変換は、ある空間基準から別の空間基準へジオメトリを投影する際に、2つの空間基準の基礎となる測地系に違いがある場合に使用されます。測地系変換は、数学的に定義する(方程式ベースの変換)ことも、外部のサポート ファイルに依存する(グリッド ベースの変換)ことも可能です。アプリでグリッドベースの変換を使用する場合、投影エンジン ファイルが存在する必要があります。投影エンジン ファイルが無い状態で変換をしようとすると、エラーが発生します。API は、必要なファイルがローカル ファイル システムで利用可能かどうかを検出できます。
グリッド ベースの変換を使用している場合は、ダウンロード ページからサポートする 投影エンジン ファイルをダウンロードしてください。 座標系、投影、測地系変換の操作に関する詳細は、Spatial references トピックを参照してください。