インストール ガイド

出典: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

  1. VS Code で Flutter プロジェクトを開きます。

  2. View > Terminal を開きます。

  3. プロジェクトの依存関係に arcgis_maps パッケージを追加します。

    dart pub add arcgis_maps
    

    dart pub add は、arcgis_maps パッケージを依存関係として pubspec.yaml に追加し、pubspec.yaml を解決するために依存関係を取得します。

  4. 以下のコマンドを実行して、すべての依存関係を最新の互換性のあるバージョンにアップデートします。

    flutter pub upgrade
    

    このコマンドを実行すると、アプリが依存しているパッケージのみがアップデートされます。

  5. 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

  1. 以下の最低要件を更新します。

    • Android NDK バージョン: 27.0.12077973
    • Android の最低 SDK バージョン: 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
        }
    }
    

    `

  2. Kotlin のバージョンを更新します。

    • 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

  1. iOS 16.0 以上を設定します。 行のコメントを解除し、バージョン番号を更新します。

    ios/Podfile

    # Uncomment this line to define a global platform for your project
    platform :ios, '16.0' #変更
    
  2. 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
    
  3. 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 をお勧めします。

ローカルでドキュメントを公開する方法

  • 使用する SDK のドキュメントをダウンロードします。 ダウンロードしたファイルは .zip アーカイブ形式になっています。
  • アーカイブをローカル フォルダに解凍します。 解凍されたアーカイブには、publicinstall の 2 つのサブフォルダがあります。
  • install フォルダ内の README.md ファイルを開き、選択した Web サーバーの指示に従います。

ライブ ドキュメント サイトはリリースとリリースの間に定期的に更新されますが、スタンドアロン ドキュメントは静的で、最初のリリース後は更新されません。

補足データ

投影 エンジン データ

測地系変換は、ある空間基準から別の空間基準へジオメトリを投影する際に、2つの空間基準の基礎となる測地系に違いがある場合に使用されます。測地系変換は、数学的に定義する(方程式ベースの変換)ことも、外部のサポート ファイルに依存する(グリッド ベースの変換)ことも可能です。アプリでグリッドベースの変換を使用する場合、投影エンジン ファイルが存在する必要があります。投影エンジン ファイルが無い状態で変換をしようとすると、エラーが発生します。API は、必要なファイルがローカル ファイル システムで利用可能かどうかを検出できます。

グリッド ベースの変換を使用している場合は、ダウンロード ページからサポートする 投影エンジン ファイルをダウンロードしてください。 座標系、投影、測地系変換の操作に関する詳細は、Spatial references トピックを参照してください。