

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Location Service の SDK とフレームワーク
<a name="dev-sdks"></a>

AWS には、複数のプログラミング言語用の Software Development Kit (SDKs) が用意されているため、Amazon Location Service をアプリケーションに簡単に統合できます。このページでは、希望する開発環境で Amazon Location Service の使用を開始するために必要な SDK、そのインストール手順、およびコード例について説明します。

Amazon Location Service 使用に役立つツールはいくつかあります。
+ **AWS SDKs** – Software AWS Development Kit (SDKs) は、多くの一般的なプログラミング言語で利用でき、任意の言語でアプリケーションを簡単に構築できる API、コード例、ドキュメントを提供します。 AWS SDKs には、マップ、場所、ルート、ジオフェンシング、トラッカーへのアクセスなど、主要な Amazon Location APIs と機能が含まれています。Amazon Location Service で使用できる SDK のさまざまなアプリケーションや言語の詳細については、「[SDK (言語別)](dev-by-language.md)」を参照してください。
+ **MapLibre** — Amazon Location Service では、[MapLibre](https://github.com/maplibre/maplibre-gl-js) レンダリングエンジンを使用してマップをレンダリングすることを推奨しています。MapLibre は、ウェブアプリケーションまたはモバイルアプリケーションでマップを表示するためのエンジンです。MapLibre にはプラグインモデルもあり、一部の言語やプラットフォームでの検索やルート検索用のユーザーインターフェイスをサポートしています。MapLibre の使用方法と提供される機能の詳細については、「[Amazon Location で MapLibre のツールと関連ライブラリを使用する](dev-maplibre.md)」を参照してください。
+ **Amazon Location SDK** — Amazon Location SDK は、Amazon Location Service を使用したアプリケーションの開発を容易にするオープンソースライブラリのセットです。ライブラリは、モバイルアプリケーションとウェブアプリケーションの認証、モバイルアプリケーションの場所追跡、Amazon Location データ型と [GeoJSON](https://geojson.org/) 間の変換、および AWS SDK v3 の Amazon Location クライアントのホストパッケージをサポートする機能を提供します。Amazon Location SDK の詳細については、「[SDK (言語別)](dev-by-language.md)」を参照してください。
+ **Amazon Location Migration SDK** - 既存のアプリケーションで Google マップから Amazon Location に移行できるようにする SDK です。Migration SDK を利用すると、Google Maps SDK for JavaScript で構築されたアプリケーションで、Amazon Location がサポートする機能を使用していれば、アプリケーションやビジネスロジックを書き直すことなく、Amazon Location Service に乗り換えることができます。Migration SDK は、すべての API コールを Google マップではなく Amazon Location にリダイレクトします。使用を開始するには、GitHub で「[Amazon Location Migration SDK](https://github.com/aws-geospatial/amazon-location-migration)」を参照してください。

# デベロッパーチュートリアル
<a name="sdk-how-to"></a>

このセクションでは、Amazon Location Service SDK のさまざまな側面を使用する方法について説明します。

**Topics**
+ [認証ヘルパーの使用方法](how-to-auth-helper.md)
+ [Amazon Location MapLibre ジオコーダー GL プラグインを使用する](dev-maplibre-geocoder.md)
+ [追跡 SDK の使用方法](dev-tracking-sdk.md)
+ [Amazon Location で MapLibre のツールと関連ライブラリを使用する](dev-maplibre.md)

# 認証ヘルパーの使用方法
<a name="how-to-auth-helper"></a>

このセクションでは、認証ヘルパーに関する追加情報を説明します。

## Web
<a name="loc-sdk-auth-web"></a>

Amazon Location JavaScript 認証ユーティリティは、JavaScript アプリケーションから Amazon Location Service API コールを行う際の認証に役立ちます。これらのユーティリティは、API キーまたは Amazon Cognito を使用した認証に特に役立ちます。

**インストール**
+ NPM を使用してこのライブラリをインストールします。

  ```
  npm install @aws/amazon-location-utilities-auth-helper
  ```
+ ブラウザで直接使用するには、HTML ファイルに以下を含めます。

  ```
  <script src="https://cdn.jsdelivr.net/npm/@aws/amazon-location-utilities-auth-helper@1"></script>
  ```

### 使用方法
<a name="loc-sdk-auth-usage"></a>

認証ヘルパーを使用するには、ライブラリをインポートし、必要なユーティリティ関数を呼び出します。このライブラリは、[Maps](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-maps/)、[Places](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-places/)、[Routes](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-routes/) スタンドアロン SDK を含む Amazon Location Service SDK からのリクエストの認証と、[MapLibre GL JS](https://github.com/maplibre/maplibre-gl-js) を使用したマップのレンダリングをサポートしています。

**モジュールでの使用**

この例では、スタンドアロンの Places SDK を使用して API キーで認証されたリクエストを作成する方法を示します。

```
npm install @aws-sdk/client-geo-places

import { GeoPlacesClient, GeocodeCommand } from "@aws-sdk/client-geo-places";
import { withAPIKey } from "@aws/amazon-location-utilities-auth-helper";

const authHelper = withAPIKey("<API Key>", "<Region>");
const client = new GeoPlacesClient(authHelper.getClientConfig());

const input = { ... };
const command = new GeocodeCommand(input);
const response = await client.send(command);
```

この例では、スタンドアロンの Routes SDK を使用して API キーで認証されたリクエストを作成する方法を示します。

```
npm install @aws-sdk/geo-routes-client

import { GeoRoutesClient, CalculateRoutesCommand } from "@aws-sdk/geo-routes-client";
import { withAPIKey } from "@aws/amazon-location-utilities-auth-helper";

const authHelper = withAPIKey("<API Key>", "<Region>");
const client = new GeoRoutesClient(authHelper.getClientConfig());

const input = { ... };
const command = new CalculateRoutesCommand(input);
const response = await client.send(command);
```

この例では、API キー認証を使用した Location SDK を使用します。

```
npm install @aws-sdk/client-location

import { LocationClient, ListGeofencesCommand } from "@aws-sdk/client-location";
import { withAPIKey } from "@aws/amazon-location-utilities-auth-helper";

const authHelper = withAPIKey("<API Key>", "<Region>");
const client = new LocationClient(authHelper.getClientConfig());

const input = { ... };
const command = new ListGeofencesCommand(input);
const response = await client.send(command);
```

**ブラウザでの使用**

ユーティリティ関数は、ブラウザ環境で直接使用する場合、amazonLocationAuthHelper グローバルオブジェクトでアクセスできます。

この例では、API キーで認証された Amazon Location Client を使用したリクエストを示します。

```
<script src="https://cdn.jsdelivr.net/npm/@aws/amazon-location-client@1"></script>

const authHelper = amazonLocationClient.withAPIKey("<API Key>", "<Region>");
const client = new amazonLocationClient.GeoRoutesClient(authHelper.getClientConfig());
const input = { ... };
const command = new amazonLocationClient.routes.CalculateRoutesCommand(input);
const response = await client.send(command);
```

この例では、API キーで認証された MapLibre GL JS を使用してマップをレンダリングする方法を示します。

```
<script src="https://cdn.jsdelivr.net/npm/maplibre-gl@5.x"></script>

const apiKey = "<API Key>";
const region = "<Region>";
const styleName = "Standard";

const map = new maplibregl.Map({
  container: "map",
  center: [-123.115898, 49.295868],
  zoom: 10,
  style: `https://maps.geo.${region}.amazonaws.com/v2/styles/${styleName}/descriptor?key=${apiKey}`,
});
```

この例では、Amazon Cognito を使用して MapLibre GL JS でマップをレンダリングする方法を示します。

```
<script src="https://cdn.jsdelivr.net/npm/maplibre-gl@5.x"></script>
<script src="https://cdn.jsdelivr.net/npm/@aws/amazon-location-utilities-auth-helper@1"></script>

const identityPoolId = "<Identity Pool ID>";
const authHelper = await amazonLocationAuthHelper.withIdentityPoolId(identityPoolId);

const map = new maplibregl.Map({
  container: "map",
  center: [-123.115898, 49.295868],
  zoom: 10,
  style: `https://maps.geo.${region}.amazonaws.com/v2/styles/${styleName}/descriptor`,
  ...authHelper.getMapAuthenticationOptions(),
});
```

**認証された ID での代替利用方法**

withIdentityPoolId 関数を変更して、認証された ID のカスタムパラメータを含めることができます。

```
const userPoolId = "<User Pool ID>";

const authHelper = await amazonLocationAuthHelper.withIdentityPoolId(identityPoolId, {
  logins: {
    [`cognito-idp.${region}.amazonaws.com/${userPoolId}`]: "cognito-id-token"
  }
});
```

## iOS
<a name="loc-sdk-auth-ios"></a>

Amazon Location Service Mobile Authentication SDK for iOS は、iOS アプリケーションから Amazon Location Service API へのリクエスト認証を支援します。特に API キーまたは Amazon Cognito による認証に役立ちます。

**インストール**
+ Xcode を開き、**[ファイル] > [パッケージの依存関係を追加]** に移動します。
+ 検索バーにパッケージ URL ([https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-ios/](https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-ios/)) を入力し、Enter キーを押します。
+ 「amazon-location-mobile-auth-sdk-ios」パッケージを選択し、**[パッケージを追加]** をクリックします。
+ 「AmazonLocationiOSAuthSDK」パッケージ製品を選択し、**[パッケージを追加]** をクリックします。

### 使用方法
<a name="loc-sdk-auth-usage"></a>

ライブラリをインストールしたら、`AuthHelper` クラスを使用して API キーまたは Amazon Cognito のクライアント設定を行います。

**API キー**

API キー認証でスタンドアロンの Places SDK を使用する例を次に示します。

```
import AmazonLocationiOSAuthSDK
import AWSGeoPlaces

func geoPlacesExample() {
    let apiKey = "<API key>"
    let region = "<Region>"

    let authHelper = try await AuthHelper.withApiKey(apiKey: apiKey, region: region)
    let client: GeoPlacesClient = GeoPlacesClient(config: authHelper.getGeoPlacesClientConfig())

    let input = AWSGeoPlaces.SearchTextInput(
        biasPosition: [-97.7457518, 30.268193],
        queryText: "tacos"
    )

    let output = try await client.searchText(input: input)
}
```

API キー認証でスタンドアロンの Routes SDK を使用する例を次に示します。

```
import AmazonLocationiOSAuthSDK
import AWSGeoRoutes

func geoRoutesExample() {
    let apiKey = "<API key>"
    let region = "<Region>"

    let authHelper = try await AuthHelper.withApiKey(apiKey: apiKey, region: region)
    let client: GeoRoutesClient = GeoRoutesClient(config: authHelper.getGeoRoutesClientConfig())

    let input = AWSGeoRoutes.CalculateRoutesInput(
        destination: [-123.1651031, 49.2577281],
        origin: [-97.7457518, 30.268193]
    )

    let output = try await client.calculateRoutes(input: input)
}
```

API キー認証で Location SDK を使用する例を次に示します。

```
import AmazonLocationiOSAuthSDK
import AWSLocation

func locationExample() {
    let apiKey = "<API key>"
    let region = "<Region>"

    let authHelper = try await AuthHelper.withApiKey(apiKey: apiKey, region: region)
    let client: LocationClient = LocationClient(config: authHelper.getLocationClientConfig())

    let input = AWSLocation.ListGeofencesInput(
        collectionName: "<Collection name>"
    )

    let output = try await client.listGeofences(input: input)
}
```

Amazon Cognito でスタンドアロンの Places SDK を使用する例を次に示します。

```
import AmazonLocationiOSAuthSDK
import AWSGeoPlaces

func geoPlacesExample() {
    let identityPoolId = "<Identity Pool ID>"

    let authHelper = try await AuthHelper.withIdentityPoolId(identityPoolId: identityPoolId)
    let client: GeoPlacesClient = GeoPlacesClient(config: authHelper.getGeoPlacesClientConfig())

    let input = AWSGeoPlaces.SearchTextInput(
        biasPosition: [-97.7457518, 30.268193],
        queryText: "tacos"
    )

    let output = try await client.searchText(input: input)
}
```

Amazon Cognito でスタンドアロン Routes SDK を使用する例を次に示します。

```
import AmazonLocationiOSAuthSDK
import AWSGeoRoutes

func geoRoutesExample() {
    let identityPoolId = "<Identity Pool ID>"

    let authHelper = try await AuthHelper.withIdentityPoolId(identityPoolId: identityPoolId)
    let client: GeoRoutesClient = GeoRoutesClient(config: authHelper.getGeoRoutesClientConfig())

    let input = AWSGeoRoutes.CalculateRoutesInput(
        destination: [-123.1651031, 49.2577281],
        origin: [-97.7457518, 30.268193]
    )

    let output = try await client.calculateRoutes(input: input)
}
```

Amazon Cognito で Location SDK を使用する例を次に示します。

```
import AmazonLocationiOSAuthSDK
import AWSLocation

func locationExample() {
    let identityPoolId = "<Identity Pool ID>"

    let authHelper = try await AuthHelper.withIdentityPoolId(identityPoolId: identityPoolId)
    let client: LocationClient = LocationClient(config: authHelper.getLocationClientConfig())

    let input = AWSLocation.ListGeofencesInput(
        collectionName: "<Collection name>"
    )

    let output = try await client.listGeofences(input: input)
}
```

## Android
<a name="loc-sdk-auth-android"></a>

Amazon Location Service Mobile Authentication SDK for Android は、Android アプリケーションからの Amazon Location Service API へのリクエストを認証し、特に Amazon Cognito を使用した認証をサポートします。

**インストール**
+ この認証 SDK は、 AWS Kotlin SDK 全体と連携します。どちらの SDK も Maven Central に公開されます。[認証 SDK](https://mvnrepository.com/artifact/software.amazon.location/auth) の最新バージョンは、Maven Central で確認できます。
+ Android Studio の `build.gradle` ファイルの依存関係セクションに、次の行を追加します。

  ```
  implementation("software.amazon.location:auth:1.1.0")
  implementation("org.maplibre.gl:android-sdk:11.5.2")
  implementation("com.squareup.okhttp3:okhttp:4.12.0")
  ```
+ スタンドアロンの Maps、Places、Routes SDK の場合は、次の行を追加します。

  ```
  implementation("aws.sdk.kotlin:geomaps:1.3.65")
  implementation("aws.sdk.kotlin:geoplaces:1.3.65")
  implementation("aws.sdk.kotlin:georoutes:1.3.65")
  ```
+ Geofencing と Tracking を含む統合 Location SDK の場合は、次の行を追加します。

  ```
  implementation("aws.sdk.kotlin:location:1.3.65")
  ```

### 使用方法
<a name="loc-sdk-auth-usage"></a>

対象のコードで以下のクラスをインポートします。

```
// For the standalone Maps, Places, and Routes SDKs
import aws.sdk.kotlin.services.geomaps.GeoMapsClient
import aws.sdk.kotlin.services.geoplaces.GeoPlacesClient
import aws.sdk.kotlin.services.georoutes.GeoRoutesClient

// For the consolidated Location SDK
import aws.sdk.kotlin.services.location.LocationClient

import software.amazon.location.auth.AuthHelper
import software.amazon.location.auth.LocationCredentialsProvider
import software.amazon.location.auth.AwsSignerInterceptor
import org.maplibre.android.module.http.HttpRequestUtil
import okhttp3.OkHttpClient
```

を作成し`AuthHelper`、 AWS Kotlin SDK で使用できます。

**例: アイデンティティプール ID を持つ認証情報プロバイダー**

```
private suspend fun exampleCognitoLogin() {
    val authHelper = AuthHelper.withCognitoIdentityPool("MY-COGNITO-IDENTITY-POOL-ID", applicationContext)
    
    var geoMapsClient = GeoMapsClient(authHelper?.getGeoMapsClientConfig())
    var geoPlacesClient = GeoPlacesClient(authHelper?.getGeoPlacesClientConfig())
    var geoRoutesClient = GeoRoutesClient(authHelper?.getGeoRoutesClientConfig())
    
    var locationClient = LocationClient(authHelper?.getLocationClientConfig())
}
```

**例: カスタム認証情報プロバイダーを持つ認証情報プロバイダー**

```
private suspend fun exampleCustomCredentialLogin() {
    var authHelper = AuthHelper.withCredentialsProvider(MY-CUSTOM-CREDENTIAL-PROVIDER, "MY-AWS-REGION", applicationContext)

    var geoMapsClient = GeoMapsClient(authHelper?.getGeoMapsClientConfig())
    var geoPlacesClient = GeoPlacesClient(authHelper?.getGeoPlacesClientConfig())
    var geoRoutesClient = GeoRoutesClient(authHelper?.getGeoRoutesClientConfig())
    
    var locationClient = LocationClient(authHelper?.getLocationClientConfig())
}
```

**例: API キーを持つ認証情報プロバイダー**

```
private suspend fun exampleApiKeyLogin() {
    var authHelper = AuthHelper.withApiKey("MY-API-KEY", "MY-AWS-REGION", applicationContext)

    var geoMapsClient = GeoMapsClient(authHelper?.getGeoMapsClientConfig())
    var geoPlacesClient = GeoPlacesClient(authHelper?.getGeoPlacesClientConfig())
    var geoRoutesClient = GeoRoutesClient(authHelper?.getGeoRoutesClientConfig())
    
    var locationClient = LocationClient(authHelper?.getLocationClientConfig())
}
```

`LocationCredentialsProvider` を使用して MapLibre マップをロードできます。以下がその例です。

```
HttpRequestUtil.setOkHttpClient(
    OkHttpClient.Builder()
        .addInterceptor(
            AwsSignerInterceptor(
                "geo",
                "MY-AWS-REGION",
                locationCredentialsProvider,
                applicationContext
            )
        )
        .build()
)
```

作成したクライアントを使用して Amazon Location Service を呼び出します。以下の例では、指定した緯度と経度の近くにある場所を検索します。

```
val suggestRequest = SuggestRequest {
       biasPosition = listOf(-97.718833, 30.405423)
       maxResults = MAX_RESULT
       language = "PREFERRED-LANGUAGE"
   }
val nearbyPlaces = geoPlacesClient.suggest(suggestRequest)
```

# Amazon Location MapLibre ジオコーダー GL プラグインを使用する
<a name="dev-maplibre-geocoder"></a>

Amazon Location MapLibre ジオコーダープラグインは、[maplibre-gl-geocoder](https://github.com/maplibre/maplibre-gl-geocoder) ライブラリを使用してマップのレンダリングとジオコーディングを行う場合に、Amazon Location の機能を JavaScript アプリケーションに組み込みやすくなるように設計されています。

## インストール
<a name="geocoder-installation"></a>

モジュールで使用する Amazon Location MapLibre ジオコーダープラグインを NPM からインストールします。以下のコマンドを使用します:

```
npm install @aws/amazon-location-for-maplibre-gl-geocoder
```

また、スクリプトにより、ブラウザで直接使用するために HTML および CSS ファイルにインポートできます。

```
<script src="https://cdn.jsdelivr.net/npm/@aws/amazon-location-for-maplibre-gl-geocoder@2"></script>
<link
  href="https://cdn.jsdelivr.net/npm/@aws/amazon-location-for-maplibre-gl-geocoder@2/dist/amazon-location-for-mlg-styles.css"
  rel="stylesheet"
/>
```

## モジュールでの使用 - スタンドアロン GeoPlaces SDK
<a name="geocoder-module"></a>

この例では、[AWS SDK for JavaScript V3](https://github.com/aws/aws-sdk-js-v3) を使用して GeoPlacesClient を取得しライブラリに提供し、[AuthHelper](https://github.com/aws-geospatial/amazon-location-utilities-auth-helper-js) を使用して GeoPlacesClient を認証します。これにより、ジオコーダーのすべての API が有効になります。

```
// Import MapLibre GL JS
import maplibregl from "maplibre-gl";
// Import from the AWS JavaScript SDK V3
import { GeoPlacesClient } from "@aws-sdk/client-geo-places";
// Import the utility functions
import { withAPIKey } from "@aws/amazon-location-utilities-auth-helper";
// Import the AmazonLocationMaplibreGeocoder
import {
  buildAmazonLocationMaplibreGeocoder,
  AmazonLocationMaplibreGeocoder,
} from "@aws/amazon-location-for-maplibre-gl-geocoder";

const apiKey = "<API Key>";
const mapName = "Standard";
const region = "<Region>"; // region containing Amazon Location API Key

// Create an authentication helper instance using an API key and region
const authHelper = await withAPIKey(apiKey, region);

const client = new GeoPlacesClient(authHelper.getClientConfig());

// Render the map
const map = new maplibregl.Map({
  container: "map",
  center: [-123.115898, 49.295868],
  zoom: 10,
  style: `https://maps.geo.${region}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`,
});

// Gets an instance of the AmazonLocationMaplibreGeocoder Object.
const amazonLocationMaplibreGeocoder = buildAmazonLocationMaplibreGeocoder(client, { enableAll: true });

// Now we can add the Geocoder to the map.
map.addControl(amazonLocationMaplibreGeocoder.getPlacesGeocoder());
```

## ブラウザでの使用 - スタンドアロン GeoPlaces SDK
<a name="geocoder-browser"></a>

この例では、Amazon Location のクライアントを使用して、API による認証をリクエストしています。

**注記**  
ここで示す例の一部では、Amazon Location GeoPlacesClient を使用しています。このクライアントは、[AWS SDK for JavaScript V3](https://github.com/aws/aws-sdk-js-v3) に基づいており、HTML ファイルで参照されるスクリプトを通じて Amazon Location を呼び出すことができます。

HTML ファイルに以下を含めます。

```
<!-- Import the Amazon Location For Maplibre Geocoder -->
<script src="https://cdn.jsdelivr.net/npm/@aws/amazon-location-for-maplibre-gl-geocoder@2"></script>
<link
  href="https://cdn.jsdelivr.net/npm/@aws/amazon-location-for-maplibre-gl-geocoder@2/dist/amazon-location-for-mlg-styles.css"
  rel="stylesheet"
/>
<!-- Import the Amazon GeoPlacesClient -->
<script src="https://cdn.jsdelivr.net/npm/@aws/amazon-location-client@1"></script>
```

JavaScript ファイルに以下を含めます。

```
const apiKey = "<API Key>";
const mapStyle = "Standard";
const region = "<Region>"; // region containing Amazon Location API key

// Create an authentication helper instance using an API key and region
const authHelper = await amazonLocationClient.withAPIKey(apiKey, region);

const client = new amazonLocationClient.GeoPlacesClient(authHelper.getClientConfig());

// Render the map
const map = new maplibregl.Map({
  container: "map",
  center: [-123.115898, 49.295868],
  zoom: 10,
  style: `https://maps.geo.${region}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`,
});

// Initialize the AmazonLocationMaplibreGeocoder object
const amazonLocationMaplibreGeocoderObject = amazonLocationMaplibreGeocoder.buildAmazonLocationMaplibreGeocoder(
  client,
  { enableAll: true },
);

// Use the AmazonLocationWithMaplibreGeocoder object to add a geocoder to the map.
map.addControl(amazonLocationMaplibreGeocoderObject.getPlacesGeocoder());
```

## 関数
<a name="geocoder-functions"></a>

以下は、Amazon Location MapLibre ジオコーダープラグインで使用される関数です。
+ `buildAmazonLocationMaplibreGeocoder`

  このクラスは、他のすべての呼び出しのエントリポイントとなる `AmazonLocationMaplibreGeocder` のインスタンスを作成します。

  スタンドアロン `GeoPlacesClient` API コールの使用 (クライアントは `GeoPlacesClient` のインスタンス):

  ```
  const amazonLocationMaplibreGeocoder = buildAmazonLocationMaplibreGeocoder(client, { enableAll: true });
  ```

  統合 `LocationClient` API コールの使用 (クライアントは `LocationClient` のインスタンス):

  ```
  const amazonLocationMaplibreGeocoder = buildAmazonLocationMaplibreGeocoder(client, {
    enableAll: true,
    placesIndex: placeIndex,
  });
  ```
+ `getPlacesGeocoder`

  マップにすぐに追加できる状態で IControl オブジェクトを返します。

  ```
  const geocoder = getPlacesGeocoder();
  
  // Initialize map see: <insert link to initializing a map instance here>
  let map = await initializeMap();
  
  // Add the geocoder to the map.
  map.addControl(geocoder);
  ```

# 追跡 SDK の使用方法
<a name="dev-tracking-sdk"></a>

このトピックでは、追跡 SDK の使用方法について説明します。

# iOS
<a name="loc-mobile-tracking-ios"></a>

Amazon Location Mobile Tracking SDK には、認証、デバイスの位置の取得、Amazon Location Tracker への位置情報の更新の送信に役立つユーティリティが用意されています。この SDK は、位置情報の更新に対して、ローカルでのフィルタリングをサポートしており、更新間隔を設定できます。これにより、データコストが削減され、iOS アプリケーションの断続的な接続が最適化されます。

iOS 用 Mobile Tracking SDK は GitHub で [Amazon Location Mobile Tracking SDK for iOS](https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios) として入手できます。

このセクションでは、Amazon Location Mobile Tracking SDK for iOS の以下のトピックについて説明します。

**Topics**
+ [インストール](#loc-mobile-tracking-install-ios)
+ [使用方法](#loc-mobile-tracking-usage-ios)
+ [フィルター](#loc-mobile-tracking-ios-filters)
+ [iOS 用 Mobile Tracking SDK の追跡関数](#loc-mobile-tracking-functions)
+ [例](#loc-mobile-tracking-example-ios)

## インストール
<a name="loc-mobile-tracking-install-ios"></a>

iOS 用 Mobile Tracking SDK をインストールするには、以下の手順に従います。

1. Xcode プロジェクトで、**[ファイル]** に移動し、**[パッケージの依存関係を追加]** を選択します。

1. 検索バーに URL として [https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/](https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/) と入力し、Enter キーを押します。

1. `amazon-location-mobile-tracking-sdk-ios` パッケージを選択し、**[パッケージを追加]** をクリックします。

1. `AmazonLocationiOSTrackingSDK` パッケージ製品を選択し、**[パッケージを追加]** をクリックします。

## 使用方法
<a name="loc-mobile-tracking-usage-ios"></a>

以下の手順では、Amazon Cognito からの認証情報を使用して認証ヘルパーを作成する方法を示しています。

1. ライブラリをインストールした後、`info.plist` ファイルに以下の説明のいずれかまたは両方を追加する必要があります。

   ```
   Privacy - Location When In Use Usage Description
   Privacy - Location Always and When In Use Usage Description
   ```

1. 次に、クラスに AuthHelper をインポートします。

   ```
   import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK
   ```

1. 次に、Amazon Cognito の認証情報を使用して認証ヘルパーを作成して、`AuthHelper`オブジェクトを作成して AWS SDK で使用します。

   ```
   let authHelper = AuthHelper()
   let locationCredentialsProvider = authHelper.authenticateWithCognitoUserPool(identityPoolId: "My-Cognito-Identity-Pool-Id", region: "My-region") //example: us-east-1
   let locationTracker = LocationTracker(provider: locationCredentialsProvider, trackerName: "My-tracker-name")
   
   // Optionally you can set ClientConfig with your own values in either initialize or in a separate function
   // let trackerConfig = LocationTrackerConfig(locationFilters: [TimeLocationFilter(), DistanceLocationFilter()],
   
        trackingDistanceInterval: 30,
        trackingTimeInterval: 30,
        logLevel: .debug)
   
   // locationTracker = LocationTracker(provider: credentialsProvider, trackerName: "My-tracker-name",config: trackerConfig)
   // locationTracker.setConfig(config: trackerConfig)
   ```

## フィルター
<a name="loc-mobile-tracking-ios-filters"></a>

Amazon Location Mobile Tracking SDK for iOS には、3 つの組み込みの位置情報フィルタがあります。
+ `TimeLocationFilter`: 定義した時間間隔に基づいてアップロードされる現在の位置情報をフィルタリングします。
+ `DistanceLocationFilter`: 指定した距離のしきい値に基づいて位置情報の更新をフィルタリングします。
+ `AccuracyLocationFilter`: 現在の位置情報の精度を考慮して、前回の更新位置からの移動距離を評価し、位置情報の更新をフィルタリングします。

この例では、`LocationTracker` の作成時にフィルタを追加します。

```
val config = LocationTrackerConfig(
    trackerName = "MY-TRACKER-NAME",
    logLevel = TrackingSdkLogLevel.DEBUG,
    accuracy = Priority.PRIORITY_HIGH_ACCURACY,
    latency = 1000,
    frequency = 5000,
    waitForAccurateLocation = false,
    minUpdateIntervalMillis = 5000,
    locationFilters = mutableListOf(TimeLocationFilter(), DistanceLocationFilter(), AccuracyLocationFilter())
)

locationTracker = LocationTracker(
    applicationContext,
    locationCredentialsProvider,
    config,
)
```

この例では、`LocationTracker` の実行時にフィルタを有効/無効にします。

```
// To enable the filter
locationTracker?.enableFilter(TimeLocationFilter())

// To disable the filter
locationTracker?.disableFilter(TimeLocationFilter())
```

## iOS 用 Mobile Tracking SDK の追跡関数
<a name="loc-mobile-tracking-functions"></a>

Amazon Location Mobile Tracking SDK for iOS には、以下の関数が含まれています。
+ **クラス**: `LocationTracker`

  `init(provider: LocationCredentialsProvider, trackerName: String, config: LocationTrackerConfig? = nil)`

  これは `LocationTracker` オブジェクトを作成する初期化関数です。この関数には、`LocationCredentialsProvider`、`trackerName`、およびオプションで `LocationTrackingConfig` のインスタンスが必要です。設定を定義しない場合は、デフォルト値で初期化されます。
+ **クラス**: `LocationTracker`

  `setTrackerConfig(config: LocationTrackerConfig)`

  位置トラッカーの初期化後、任意の時点でトラッカーの設定を有効にします。
+ **クラス**: `LocationTracker`

  `getTrackerConfig()`

  アプリケーションで使用または変更する位置追跡の設定を取得します。

  戻り値: `LocationTrackerConfig`
+ **クラス**: `LocationTracker`

  `getDeviceId()`

  位置トラッカーによって生成されたデバイス ID を取得します。

  戻り値: `String?`
+ **クラス**: `LocationTracker`

  `startTracking()`

  ユーザーの場所にアクセスして AWS トラッカーに送信するプロセスを開始します。
+ **クラス**: `LocationTracker`

  `resumeTracking()`

  ユーザーの場所にアクセスして AWS トラッカーに送信するプロセスを再開します。
+ **クラス**: `LocationTracker`

  `stopTracking()`

  ユーザーの位置の追跡プロセスを停止します。
+ **クラス**: `LocationTracker`

  `startBackgroundTracking(mode: BackgroundTrackingMode)`

  アプリケーションがバックグラウンドにある間、ユーザーのロケーションにアクセスして AWS トラッカーに送信するプロセスを開始します。 `BackgroundTrackingMode` には次のオプションがあります。
  + `Active:` 位置情報の更新を自動的に一時停止しません。
  + `BatterySaving:` 位置情報の更新を自動的に一時停止します。
  + `None:` バックグラウンドでの位置情報の更新を完全に無効にします。
+ **クラス**: `LocationTracker`

  `resumeBackgroundTracking(mode: BackgroundTrackingMode)`

  アプリケーションがバックグラウンドにある間、ユーザーの場所にアクセスして AWS トラッカーに送信するプロセスを再開します。
+ **クラス**: `LocationTracker`

  `stopBackgroundTracking()`

  アプリケーションがバックグラウンドにある間、ユーザーの場所にアクセスし、 AWS トラッカーに送信するプロセスを停止します。
+ **クラス**: `LocationTracker`

  `getTrackerDeviceLocation(nextToken: String?, startTime: Date? = nil, endTime: Date? = nil, completion: @escaping (Result<GetLocationResponse, Error>)`

  開始日時と終了日時の間にユーザーのデバイスのアップロードされた追跡位置情報を取得します。

  戻り値: `Void`
+ **クラス**: `LocationTrackerConfig`

  `init()`

  これにより、LocationTrackerConfig がデフォルト値で初期化されます。
+ **クラス**: `LocationTrackerConfig`

  `init(locationFilters: [LocationFilter]? = nil, trackingDistanceInterval: Double? = nil, trackingTimeInterval: Double? = nil, trackingAccuracyLevel: Double? = nil, uploadFrequency: Double? = nil, desiredAccuracy: CLLocationAccuracy? = nil, activityType: CLActivityType? = nil, logLevel: LogLevel? = nil)`

  ユーザー定義のパラメータ値で `LocationTrackerConfig` を初期化します。パラメータ値を定義しない場合は、デフォルト値に設定されます。
+ **クラス**: `LocationFilter`

  `shouldUpload(currentLocation: LocationEntity, previousLocation: LocationEntity?, trackerConfig: LocationTrackerConfig)`

  `LocationFilter` は、ユーザーがカスタムフィルタを実装するためのプロトコルです。前回の位置情報と現在の位置情報を比較し、現在の位置情報をアップロードする必要があるかどうかを返す `shouldUpload` 関数をユーザーが実装する必要があります。

## 例
<a name="loc-mobile-tracking-example-ios"></a>

このセクションでは、Amazon Location Mobile Tracking SDK for iOS の使用例について詳しく説明します。

**注記**  
`info.plist` ファイルで必要なアクセス許可が設定されていることを確認します。これらは、「[使用方法](#loc-mobile-tracking-usage-ios)」セクションに一覧表示されているものと同じアクセス許可です。

以下の例では、デバイスの位置を追跡して取得する機能を示しています。

```
Privacy - Location When In Use Usage Description
Privacy - Location Always and When In Use Usage Description
```

位置の追跡を開始する:

```
do {
    try locationTracker.startTracking()
    } 
catch TrackingLocationError.permissionDenied {
        // Handle permissionDenied by showing the alert message or opening the app settings
        }
```

位置の追跡を再開する:

```
do { 
    try locationTracker.resumeTracking()
    } 
catch TrackingLocationError.permissionDenied {
    // Handle permissionDenied by showing the alert message or opening the app settings
    }
```

位置の追跡を停止する:

```
locationTracker.stopTracking()
```

バックグラウンド追跡を開始する:

```
do {
    locationTracker.startBackgroundTracking(mode: .Active) // .Active, .BatterySaving, .None
    } 
catch TrackingLocationError.permissionDenied {
   // Handle permissionDenied by showing the alert message or opening the app settings
   }
```

バックグラウンド追跡を再開する:

```
do {
    locationTracker.resumeBackgroundTracking(mode: .Active)
    } 
catch TrackingLocationError.permissionDenied {
    // Handle permissionDenied by showing the alert message or opening the app settings
    }
```

バックグラウンド追跡を停止するには:

```
locationTracker.stopBackgroundTracking()
```

トラッカーからデバイスの追跡位置情報を取得します。

```
func getTrackingPoints(nextToken: String? = nil) {
let startTime: Date = Date().addingTimeInterval(-86400) // Yesterday's day date and time
let endTime: Date = Date() 
locationTracker.getTrackerDeviceLocation(nextToken: nextToken, startTime: startTime, endTime: endTime, completion: { [weak self] result in
    switch result {
    case .success(let response):
        
        let positions = response.devicePositions
        // You can draw positions on map or use it further as per your requirement

        // If nextToken is available, recursively call to get more data
        if let nextToken = response.nextToken {
            self?.getTrackingPoints(nextToken: nextToken)
        }
    case .failure(let error):
        print(error)
    }
})
}
```

# Android 用 Mobile Tracking SDK
<a name="loc-mobile-tracking-android"></a>

Amazon Location Mobile Tracking SDK には、認証、デバイスの位置の取得、Amazon Location Tracker への位置情報の更新の送信に役立つユーティリティが用意されています。この SDK は、位置情報の更新に対して、ローカルでのフィルタリングをサポートしており、更新間隔を設定できます。これにより、データコストが削減され、Android アプリケーションの断続的な接続が最適化されます。

Android 用 Mobile Tracking SDK は GitHub で [Amazon Location Mobile Tracking SDK for Android](https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-android) として入手できます。さらに、モバイル認証 SDK と AWS SDK の両方が [AWS Maven リポジトリ](https://central.sonatype.com/artifact/software.amazon.location/tracking)で利用できます。Android 追跡 SDK は、一般的な AWS SDK で動作するように設計されています。

このセクションでは、Amazon Location Mobile Tracking SDK for Android について以下のトピックを取り上げます。

**Topics**
+ [インストール](#loc-mobile-tracking-install-android)
+ [使用方法](#loc-mobile-tracking-usage-android)
+ [フィルター](#loc-mobile-tracking-android-filters)
+ [Android 用 Mobile Tracking SDK の追跡関数](#loc-mobile-tracking-functions)
+ [例](#loc-mobile-tracking-example-android)

## インストール
<a name="loc-mobile-tracking-install-android"></a>

SDK をインストールするには、Android Studio で build.gradle ファイルの dependencies セクションに以下の行を追加します。

```
implementation("software.amazon.location:tracking:0.0.1")
implementation("software.amazon.location:auth:0.0.1")
implementation("com.amazonaws:aws-android-sdk-location:2.72.0")
```

## 使用方法
<a name="loc-mobile-tracking-usage-android"></a>

この手順では、SDK を使用して認証を行い、`LocationTracker` オブジェクトを作成する方法を示します。

**注記**  
この手順では、「[インストール](#loc-mobile-tracking-install-android)」セクションで説明したライブラリをインポートしていることを前提としています。

1. 対象のコードで以下のクラスをインポートします。

   ```
   import software.amazon.location.tracking.LocationTracker
   import software.amazon.location.tracking.config.LocationTrackerConfig
   import software.amazon.location.tracking.util.TrackingSdkLogLevel
   import com.amazonaws.services.geo.AmazonLocationClient
   import software.amazon.location.auth.AuthHelper
   import software.amazon.location.auth.LocationCredentialsProvider
   ```

1. 次に、`LocationTracker` オブジェクトを作成するには `LocationCredentialsProvider` パラメータが必要になるため、`AuthHelper` を作成します。

   ```
   // Create an authentication helper using credentials from Amazon Cognito
   val authHelper = AuthHelper(applicationContext)
   val locationCredentialsProvider : LocationCredentialsProvider = authHelper.authenticateWithCognitoIdentityPool("My-Cognito-Identity-Pool-Id")
   ```

1. 次は、`LocationCredentialsProvider` と `LocationTrackerConfig` を使用して `LocationTracker` オブジェクトを作成します。

   ```
   val config = LocationTrackerConfig(
       trackerName = "MY-TRACKER-NAME",
       logLevel = TrackingSdkLogLevel.DEBUG,
       accuracy = Priority.PRIORITY_HIGH_ACCURACY,
       latency = 1000,
       frequency = 5000,
       waitForAccurateLocation = false,
       minUpdateIntervalMillis = 5000,
   )
   locationTracker = LocationTracker(
       applicationContext,
       locationCredentialsProvider,
       config,
   )
   ```

## フィルター
<a name="loc-mobile-tracking-android-filters"></a>

Amazon Location Mobile Tracking SDK for Android には、3 つの組み込みの位置情報フィルタがあります。
+ `TimeLocationFilter`: 定義した時間間隔に基づいてアップロードされる現在の位置情報をフィルタリングします。
+ `DistanceLocationFilter`: 指定した距離のしきい値に基づいて位置情報の更新をフィルタリングします。
+ `AccuracyLocationFilter`: 現在の位置情報の精度を考慮して、前回の更新位置からの移動距離を評価し、位置情報の更新をフィルタリングします。

この例では、`LocationTracker` の作成時にフィルタを追加します。

```
val config = LocationTrackerConfig(
    trackerName = "MY-TRACKER-NAME",
    logLevel = TrackingSdkLogLevel.DEBUG,
    accuracy = Priority.PRIORITY_HIGH_ACCURACY,
    latency = 1000,
    frequency = 5000,
    waitForAccurateLocation = false,
    minUpdateIntervalMillis = 5000,
    locationFilters = mutableListOf(TimeLocationFilter(), DistanceLocationFilter(), AccuracyLocationFilter())
)
locationTracker = LocationTracker(
    applicationContext,
    locationCredentialsProvider,
    config,
)
```

この例では、`LocationTracker` の実行時にフィルタを有効/無効にします。

```
// To enable the filter
locationTracker?.enableFilter(TimeLocationFilter())

// To disable the filter
locationTracker?.disableFilter(TimeLocationFilter())
```

## Android 用 Mobile Tracking SDK の追跡関数
<a name="loc-mobile-tracking-functions"></a>

Amazon Location Mobile Tracking SDK for Android には、以下の関数が含まれています。
+ **クラス**: `LocationTracker`

  `constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,trackerName: String)` または `constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)`

  これは `LocationTracker` オブジェクトを作成する初期化関数です。この関数には、`LocationCredentialsProvider`、`trackerName`、およびオプションで `LocationTrackingConfig` のインスタンスが必要です。設定を定義しない場合は、デフォルト値で初期化されます。
+ **クラス**: `LocationTracker`

  `start(locationTrackingCallback: LocationTrackingCallback)`

  ユーザーの位置情報にアクセスして Amazon Location Tracker に送信するプロセスを開始します。
+ **クラス**: `LocationTracker`

  `isTrackingInForeground()`

  位置追跡が現在進行中かどうかを確認します。
+ **クラス**: `LocationTracker`

  `stop()`

  ユーザーの位置の追跡プロセスを停止します。
+ **クラス**: `LocationTracker`

  `startTracking()`

  ユーザーの場所にアクセスして AWS トラッカーに送信するプロセスを開始します。
+ **クラス**: `LocationTracker`

  `startBackground(mode: BackgroundTrackingMode, serviceCallback: ServiceCallback)`

  アプリケーションがバックグラウンドにある間、ユーザーのロケーションにアクセスして AWS トラッカーに送信するプロセスを開始します。 `BackgroundTrackingMode` には次のオプションがあります。
  + `ACTIVE_TRACKING`: ユーザーの位置情報の更新を継続的に追跡します。
  + `BATTERY_SAVER_TRACKING`: ユーザーの位置情報の更新を 15 分ごとに追跡します。
+ **クラス**: `LocationTracker`

  `stopBackgroundService()`

  アプリケーションがバックグラウンドにある間、ユーザーの場所にアクセスし、 AWS トラッカーに送信するプロセスを停止します。
+ **クラス**: `LocationTracker`

  `getTrackerDeviceLocation()`

  Amazon Location Service からデバイスの位置情報を取得します。
+ **クラス**: `LocationTracker`

  `getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)`

  複合位置情報プロバイダークライアントからデバイスの現在の位置情報を取得し、Amazon Location Tracker にアップロードします。
+ **クラス**: `LocationTracker`

  `uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)`

  設定した位置情報フィルタに基づいてフィルタリングした後、デバイスの位置情報を Amazon Location Service にアップロードします。
+ **クラス**: `LocationTracker`

  `enableFilter(filter: LocationFilter)`

  特定の位置情報フィルタを有効にします。
+ **クラス**: `LocationTracker`

  `checkFilterIsExistsAndUpdateValue(filter: LocationFilter)`

  特定の位置情報フィルタを無効にします。
+ **クラス**: `LocationTrackerConfig`

  `LocationTrackerConfig( // Required var trackerName: String, // Optional var locationFilters: MutableList = mutableListOf( TimeLocationFilter(), DistanceLocationFilter(), ), var logLevel: TrackingSdkLogLevel = TrackingSdkLogLevel.DEBUG, var accuracy: Int = Priority.PRIORITY_HIGH_ACCURACY, var latency: Long = 1000, var frequency: Long = 1500, var waitForAccurateLocation: Boolean = false, var minUpdateIntervalMillis: Long = 1000, var persistentNotificationConfig: NotificationConfig = NotificationConfig()) `

  ユーザー定義のパラメータ値で `LocationTrackerConfig` を初期化します。パラメータ値を定義しない場合は、デフォルト値に設定されます。
+ **クラス**: `LocationFilter`

  `shouldUpload(currentLocation: LocationEntry, previousLocation: LocationEntry?): Boolean`

  `LocationFilter` は、ユーザーがカスタムフィルタを実装するためのプロトコルです。前回の位置情報と現在の位置情報を比較し、現在の位置情報をアップロードする必要があるかどうかを返す `shouldUpload` 関数を実装する必要があります。

## 例
<a name="loc-mobile-tracking-example-android"></a>

以下のコードサンプルは Mobile Tracking SDK の機能を示しています。

この例では、`LocationTracker` を使用してバックグラウンドでの追跡を開始および停止します。

```
// For starting the location tracking
locationTracker?.startBackground(
BackgroundTrackingMode.ACTIVE_TRACKING,
object : ServiceCallback {
    override fun serviceStopped() {
        if (selectedTrackingMode == BackgroundTrackingMode.ACTIVE_TRACKING) {
            isLocationTrackingBackgroundActive = false
        } else {
            isLocationTrackingBatteryOptimizeActive = false
        }
    }
},
)

// For stopping the location tracking
locationTracker?.stopBackgroundService()
```

# Amazon Location で MapLibre のツールと関連ライブラリを使用する
<a name="dev-maplibre"></a>

[MapLibre](https://maplibre.org/) は主に、ウェブまたはモバイルアプリケーションでマップを表示するためのレンダリングエンジンです。ただし、プラグインのサポートも含まれており、Amazon Location の他の機能を操作する機能も備えています。以下では、作業する領域またはロケーションに基づいて、使用できるツールについて説明します。

**注記**  
Amazon Location のいずれかの機能を使用する場合には、[使用する言語の AWS SDK](dev-by-language.md) をインストールします。
+ **マップ**

  アプリケーションにマップを表示するには、Amazon Location から提供されたデータを使用して画面に描画するマップレンダリングエンジンが必要です。マップレンダリングエンジンには、マップを画面移動したりズームしたり、マーカーやプッシュピン、その他の注釈をマップに追加したりする機能もあります。

  Amazon Location Service では、[MapLibre](https://github.com/maplibre/maplibre-gl-js) レンダリングエンジンを使用してマップをレンダリングすることを推奨しています。MapLibre GL JS は JavaScript でマップを表示するためのエンジンですが、MapLibre Native は iOS または Android 用のマップを提供しています。

  MapLibre には、コア機能を拡張するためのプラグインエコシステムもあります。詳細については、[https://maplibre.org/maplibre-gl-js/docs/plugins/](https://maplibre.org/maplibre-gl-js/docs/plugins/) をご覧ください。
+ **場所検索**

  検索ユーザーインターフェイスを簡単に作成するには、ウェブ用 [MapLibre ジオコーダー](https://github.com/maplibre/maplibre-gl-geocoder)を使用します (Android アプリケーションでは [Android Places プラグイン](https://github.com/maplibre/maplibre-plugins-android/tree/master/plugin-places)を使用します)。

  [Amazon Location for MapLibre ジオコーダーライブラリ](https://github.com/aws-geospatial/amazon-location-for-maplibre-gl-geocoder?tab=readme-ov-file) を利用して、JavaScript アプリケーションで Amazon Location と `amazon-location-for-maplibre-gl-geocoder` を使用するプロセスを簡略化します。

  詳細については、「[Amazon Location MapLibre ジオコーダー GL プラグインを使用する](dev-maplibre-geocoder.md)」を参照してください。
+ **Routes**
+ **ジオフェンスとトラッカー**

  MapLibre には、ジオフェンスやトラッキング用の特定のレンダリングやツールはありませんが、レンダリング機能や[プラグイン](https://maplibre.org/maplibre-gl-js/docs/plugins/)を使用して、ジオフェンスと追跡対象デバイスをマップ上に表示できます。

  追跡対象のデバイスは [MQTT](tracking-using-mqtt.md) を使用するか、手動で Amazon Location Service へアップデートを送信できます。ジオフェンスイベントに応答するには、[AWS Lambda](https://docs.aws.amazon.com/lambda/) を使用できます。

Amazon Location Service に追加機能を提供するオープンソースライブラリが多数用意されています。例えば、空間分析機能を提供する [Turf](https://github.com/Turfjs/turf) などです。

多くのライブラリは、オープンスタンダードの [GeoJSON](https://geojson.org/) 形式のデータを使用しています。Amazon Location Service には、JavaScript アプリケーションで使用する GeoJSON に応答を変換するライブラリが用意されています。詳細については、「[Amazon Location Service の SDK とフレームワーク](dev-sdks.md)」を参照してください。

# SDK (言語別)
<a name="dev-by-language"></a>

**SDK のバージョン**  
プロジェクトで使用する AWS SDK やその他の SDK は最新ビルドを使用し、SDK を最新の状態に保つことをお勧めします。AWS SDK には、最新の特長と機能に加え、セキュリティアップデートも含まれています。例えば、JavaScript 用 AWS SDK の最新ビルドを見つけるには、「*AWS SDK for JavaScript*」ドキュメントの「[ブラウザインストール](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html#In_the_Browser)」に関するトピックを参照してください。

次の表は、アプリケーションタイプ (ウェブ、モバイル、バックエンドアプリケーション) ごとに、言語とフレームワークの AWS SDK とマップレンダリングフレームワークのバージョンに関する情報を示しています。

------
#### [ Web frontend ]

Web フロントエンドアプリケーションの開発には、次の AWS SDK とマップレンダリングフレームワークのバージョンを使用できます。


| 言語/フレームワーク | AWS SDK | マップレンダリングフレームワーク | 
| --- | --- | --- | 
|  **完全サポートされています**  | 
|  JavaScript  |  [https://aws.amazon.com/sdk-for-javascript/](https://aws.amazon.com/sdk-for-javascript/)  |  [https://github.com/maplibre/maplibre-gl-js](https://github.com/maplibre/maplibre-gl-js)  | 
|  ReactJS  |  [https://aws.amazon.com/sdk-for-javascript/](https://aws.amazon.com/sdk-for-javascript/)  |  [https://github.com/maplibre/maplibre-react-native](https://github.com/maplibre/maplibre-react-native)  | 
|  TypeScript  |  [https://aws.amazon.com/sdk-for-javascript/](https://aws.amazon.com/sdk-for-javascript/)  |  [https://github.com/maplibre/maplibre-gl-js](https://github.com/maplibre/maplibre-gl-js)  | 
|  **一部サポートされています**  | 
|  Flutter  |  [https://docs.amplify.aws/start/q/integration/flutter/](https://docs.amplify.aws/start/q/integration/flutter/) AWS では、Flutter はまだ完全にはサポートされていませんが、Amplify を介して限定的にサポートされています。  |  [https://github.com/maplibre/flutter-maplibre-gl](https://github.com/maplibre/flutter-maplibre-gl) MapLibre Flutter ライブラリは実験的なものとして見なされています。  | 
|  Node.js  |  [https://aws.amazon.com/sdk-for-javascript/](https://aws.amazon.com/sdk-for-javascript/)  | [https://github.com/maplibre/maplibre-native](https://github.com/maplibre/maplibre-native) [https://www.npmjs.com/package/@maplibre/maplibre-gl-native](https://www.npmjs.com/package/@maplibre/maplibre-gl-native) | 
|  PHP  |  [https://aws.amazon.com/sdk-for-php/](https://aws.amazon.com/sdk-for-php/)  |  MapLibre は PHP をサポートしていません。  | 

------
#### [ Mobile frontend ]

モバイルフロントエンドアプリケーションの開発には、次の AWS SDK とマップレンダリングフレームワークのバージョンを使用できます。


| 言語/フレームワーク | AWS SDK | マップレンダリングフレームワーク | 
| --- | --- | --- | 
|  **完全サポートされています**  | 
|  Java  |  [https://aws.amazon.com/sdk-for-java/](https://aws.amazon.com/sdk-for-java/)  |  [https://github.com/maplibre/maplibre-native](https://github.com/maplibre/maplibre-native)  | 
|  Kotlin  |  [https://aws.amazon.com/sdk-for-kotlin/](https://aws.amazon.com/sdk-for-kotlin/)  Amazon Location Service Mobile Authentication SDK for Android: [https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-android](https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-android) Amazon Location Service Mobile Tracking SDK for Android: [https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-android](https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-android)  |  [https://github.com/maplibre/maplibre-native](https://github.com/maplibre/maplibre-native) MapLibre は Java ベースなので、カスタムバインディングが必要です。  | 
|  ObjectiveC  |  [https://github.com/aws-amplify/aws-sdk-ios](https://github.com/aws-amplify/aws-sdk-ios)  |  [https://github.com/maplibre/maplibre-native](https://github.com/maplibre/maplibre-native)  | 
|  ReactNative  |  [https://aws.amazon.com/sdk-for-javascript/](https://aws.amazon.com/sdk-for-javascript/)  |  [https://github.com/maplibre/maplibre-react-native](https://github.com/maplibre/maplibre-react-native)  | 
|  Swift  |  [https://aws.amazon.com/sdk-for-swift/](https://aws.amazon.com/sdk-for-swift/) Amazon Location Service Mobile Authentication SDK for iOS: [https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-ios](https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-ios) Amazon Location Service Mobile Tracking SDK for iOS: [https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios](https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios)  |  [https://github.com/maplibre/maplibre-native](https://github.com/maplibre/maplibre-native)  | 
|  **一部サポートされています**  | 
|  Flutter  |  [https://docs.amplify.aws/start/q/integration/flutter/](https://docs.amplify.aws/start/q/integration/flutter/) AWS では、Flutter はまだ完全にはサポートされていませんが、Amplify を介して限定的にサポートされています。  |  [https://github.com/maplibre/flutter-maplibre-gl](https://github.com/maplibre/flutter-maplibre-gl) MapLibre Flutter ライブラリは実験的なものとして見なされています。  | 

------
#### [ Backend application ]

バックエンドアプリケーションの開発には次の AWS SDK を使用できます。マップレンダリングフレームワークはここには記載されていません。バックエンドアプリケーションには通常、マップレンダリングは必要ないからです。


| 言語 | AWS SDK | 
| --- | --- | 
|  .NET  |  [https://aws.amazon.com/sdk-for-net/](https://aws.amazon.com/sdk-for-net/)  | 
|  C\$1\$1  |  [https://aws.amazon.com/sdk-for-cpp/](https://aws.amazon.com/sdk-for-cpp/)  | 
|  Go  |  [https://aws.amazon.com/sdk-for-go/](https://aws.amazon.com/sdk-for-go/)  | 
|  Java  |  [https://aws.amazon.com/sdk-for-java/](https://aws.amazon.com/sdk-for-java/)  | 
|  JavaScript  |  [https://aws.amazon.com/sdk-for-javascript/](https://aws.amazon.com/sdk-for-javascript/)  | 
|  Node.js  |  [https://aws.amazon.com/sdk-for-javascript/](https://aws.amazon.com/sdk-for-javascript/)  | 
|  TypeScript  |  [https://aws.amazon.com/sdk-for-javascript/](https://aws.amazon.com/sdk-for-javascript/)  | 
|  Kotlin  |  [https://aws.amazon.com/sdk-for-kotlin/](https://aws.amazon.com/sdk-for-kotlin/)  | 
|  PHP  |  [https://aws.amazon.com/sdk-for-php/](https://aws.amazon.com/sdk-for-php/)  | 
|  Python (パイソン)  |  [https://aws.amazon.com/sdk-for-python/](https://aws.amazon.com/sdk-for-python/)  | 
|  Ruby  |  [https://aws.amazon.com/sdk-for-ruby/](https://aws.amazon.com/sdk-for-ruby/)  | 
|  Rust  |  [https://aws.amazon.com/sdk-for-rust/](https://aws.amazon.com/sdk-for-rust/) AWS SDK for Rust はデベロッパー向けプレビューリリース中です。  | 

------

# 言語別のマップレンダリング SDK
<a name="map-rendering-by-language"></a>

AWS では、Amazon Location Service マップを、[MapLibre](https://github.com/maplibre/maplibre-gl-js) レンダリングエンジンを使用してレンダリングすることを推奨しています。

MapLibre は、ウェブアプリケーションまたはモバイルアプリケーションでマップを表示するためのエンジンです。MapLibre にはプラグインモデルもあり、一部の言語やプラットフォームでの検索やルート検索用のユーザーインターフェイスをサポートしています。

MapLibre の使用方法と提供される機能の詳細については、「[Amazon Location で MapLibre のツールと関連ライブラリを使用する](dev-maplibre.md)」および「[動的マップの使用方法](dynamic-maps-how-to.md)」を参照してください。

次の表は、アプリケーションタイプ (ウェブまたはモバイルアプリケーション) ごとに、言語とフレームワークの Map Rendering SDK バージョンに関する情報を示しています。

------
#### [ Web frontend ]

Web フロントエンドアプリケーションの開発には、次の Map Rendering SDK を使用できます。


| 言語/フレームワーク | マップレンダリングフレームワーク | 
| --- | --- | 
|  **完全サポートされています**  | 
|  JavaScript  |  [https://github.com/maplibre/maplibre-gl-js](https://github.com/maplibre/maplibre-gl-js)  | 
|  ReactJS  |  [https://github.com/maplibre/maplibre-react-native](https://github.com/maplibre/maplibre-react-native)  | 
|  TypeScript  |  [https://github.com/maplibre/maplibre-gl-js](https://github.com/maplibre/maplibre-gl-js)  | 
|  **一部サポートされています**  | 
|  Flutter  |  [https://github.com/maplibre/flutter-maplibre-gl](https://github.com/maplibre/flutter-maplibre-gl) MapLibre Flutter ライブラリは実験的なものとして見なされています。  | 
|  Node.js  |   Node.js は MapLibre をサポートしていません。  | 
|  PHP  |   MapLibre は PHP をサポートしていません。  | 

------
#### [ Mobile frontend ]

モバイルフロントエンドアプリケーションの開発には、次の Map Rendering SDK を使用できます。


| 言語/フレームワーク | マップレンダリングフレームワーク | 
| --- | --- | 
|  **完全サポートされています**  | 
|  Java  |  [https://github.com/maplibre/maplibre-native](https://github.com/maplibre/maplibre-native)  | 
|  Kotlin  |  [https://github.com/maplibre/maplibre-native](https://github.com/maplibre/maplibre-native) MapLibre は Java ベースなので、カスタムバインディングが必要です。  | 
|  ObjectiveC  |  [https://github.com/maplibre/maplibre-native](https://github.com/maplibre/maplibre-native)  | 
|  ReactNative  |  [https://github.com/maplibre/maplibre-react-native](https://github.com/maplibre/maplibre-react-native)  | 
|  Swift  |  [https://github.com/maplibre/maplibre-native](https://github.com/maplibre/maplibre-native)  | 
|  **一部サポートされています**  | 
|  Flutter  |  [https://github.com/maplibre/flutter-maplibre-gl](https://github.com/maplibre/flutter-maplibre-gl) MapLibre Flutter ライブラリは実験的なものとして見なされています。  | 

------

# アドレスフォーム SDK
<a name="address-form-sdk"></a>

Address Form SDK は、スマートアドレスエントリフォームの構築を合理化します。SDK で構築されたアドレスフォームは、ユーザーが入力を開始するときに、関連するアドレスの提案を提供します。ユーザーが提案を選択すると、住所フォームには都市、州、郵便番号などのフィールドが自動的に入力されます。これにより、手動入力が最小限に抑えられ、エラーが軽減され、データ入力が高速化されます。ユーザーは、選択したアドレスをマップでプレビューし、その場所ピンを調整して特定の入口または集荷場所を示すこともできます。これにより、精度が大幅に向上します。

![\[オートコンプリート機能を示す Address Form SDK のデモンストレーション\]](http://docs.aws.amazon.com/ja_jp/location/latest/developerguide/images/address-form-demo.gif)


## 試す
<a name="address-form-try-it"></a>

### デモ
<a name="address-form-demo"></a>

完全に機能する[アドレスフォームのデモ](https://aws-geospatial.github.io/address-form-sdk-js/)をお試しください。

### 自分で構築する
<a name="address-form-builder"></a>

Address Form SDK を使用してアドレスフォームの実装を開始する[開始方法](#address-form-getting-started)には、 にジャンプします。または、この SDK を搭載し、[https://console.aws.amazon.com/location/](https://console.aws.amazon.com/location/) の Amazon Location Service コンソールからアクセスできる Location Service の WYSIWYG [Address Form Builder ウィザード](https://console.aws.amazon.com/location/solution-builder/home#/address-form)を使用してノーコードアプローチを試してください。このインタラクティブウィザードでは、予測提案、自動フィールドポピュレーション、柔軟なレイアウトを使用してカスタマイズされたフォームを作成できます。開発者は、コードを記述せずに簡単に統合できるように、React JavaScript、React TypeScript、またはスタンドアロンの HTML/JavaScript でready-to-useパッケージをダウンロードできます。

## 主な機能
<a name="address-form-features"></a>

Address Form SDK の主な機能は次のとおりです。
+ アドレスと POIs、データ入力を高速化します。
+ より正確な結果を得るために、設定可能なプレースタイプ検索 (郵便番号、ロケールなど) を有効にします。
+ ユーザーを現在のエリアにすばやく集中させる自動ブラウザ位置検出を提供します。
+ 組み込みのマップビジュアライゼーションを表示して、わかりやすくコンテキストを改善します。
+ システムが提供する場所を失うことなく、マップ上でアドレスの場所を調整できるため、正確性と制御性の両方が確保されます。
+ コーディングを必要とせず、時間と労力を節約する WYSIWYG ビルダーツールが含まれています。
+ typeahead APIs のデバウンスとキャッシュを実装して、パフォーマンスを最適化し、コストを削減します。
+ アプリケーションのブランドとユーザーエクスペリエンスに合わせてスタイルをカスタマイズできます。

次の Amazon Location Service API オペレーションを使用して、フォームに対応するアドレス情報を提供します。

**[GetTile](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetTile.html)**  
インタラクティブマップをレンダリングするためのマップタイルを取得して、アドレスの位置を視覚化し、アドレスの位置を調整します。

**[Autocomplete](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_Autocomplete.html)**  
ユーザータイプとして住所の提案をリアルタイムで提供します。

**[Suggest](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_Suggest.html)**  
ユーザータイプとして住所と POI の提案をリアルタイムで提供します。

**[ReverseGeocode](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_ReverseGeocode.html)**  
ユーザーの現在の場所に基づいて住所を自動入力することを選択した場合、ユーザーの現在の場所を最も近い既知の住所に変換します。

**[GetPlace](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_GetPlace.html)**  
Autocomplete API または Suggest API の結果からアドレスを選択した後、選択したアドレスの詳細な場所情報を取得します。

## 料金
<a name="address-form-pricing"></a>

SDK は Apache-2.0 ライセンスの下で無料で[オープンソースです](https://github.com/aws-geospatial/address-form-sdk-js)。API の使用に対してのみ料金が発生します。[Amazon Location Service の料金ページ](https://aws.amazon.com/location/pricing/)を参照してください。

## 開始方法
<a name="address-form-getting-started"></a>

Address Form SDK は、React アプリ内またはスタンドアロンの HTML および JavaScript ページで使用できます。以下の手順に従って開始します。

### 前提条件
<a name="address-form-prerequisites"></a>

**注記**  
Address Form SDK を使用するには、必要なアクセス許可を持つ API キーが必要です。Amazon Location Service コンソールの [Address Form SDK Builder ウィザード](https://console.aws.amazon.com/location/solution-builder/home#/address-form)を使用して、以下のアクセス許可を持つ API キーを作成するか、以下の手順に従って手動で作成します。

Address Form SDK を使用するには、API キーポリシーで次のアクションを許可する必要があります。
+ `geo-maps:GetTile` - これはマップコンポーネントを表示するときに必要です。[GetTile](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetTile.html) API リファレンスを参照してください。
+ `geo-places:Autocomplete` - これは、先行入力機能に `Autocomplete`オペレーションを使用する場合に必要です。[Autocomplete](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_Autocomplete.html) API リファレンスを参照してください。
+ `geo-places:Suggest` - これは、先行入力機能に `Suggest`オペレーションを使用する場合に必要です。API リファレンスの[提案](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_Suggest.html)を参照してください。
+ `geo-places:ReverseGeocode` - これは、ユーザーがブラウザの位置情報 API を使用して現在の場所を指定できるようにする場合に必要です。[ReverseGeocode](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_ReverseGeocode.html) API リファレンスを参照してください。
+ `geo-places:GetPlace` - これは先行入力機能を使用する場合に必要です。[GetPlace](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_GetPlace.html) API リファレンスを参照してください。

[API キーを使用して認証](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html)ガイドに従って、必要なアクセス許可を持つ Amazon Location Service API キーを作成します。

必要なアクセス許可を持つ [CreateKey](https://docs.aws.amazon.com/location/latest/APIReference/API_geotags_CreateKey.html) API のキーポリシーの例:

#### Address Form アクセス許可の CreateKey リクエスト
<a name="createkey-example"></a>

```
{
  "KeyName": "ExampleKey",
  "ExpireTime": "YYYY-MM-DDThh:mm:ss.sss",
  "Restrictions": {
    "AllowActions": [
      "geo-maps:GetTile",
      "geo-places:Autocomplete",
      "geo-places:Suggest",
      "geo-places:GetPlace",
      "geo-places:ReverseGeocode"
    ],
    "AllowResources": [
      "arn:aws:geo-maps:<Region>::provider/default",
      "arn:aws:geo-places:<Region>::provider/default"
    ]
  }
}
```

### インストール
<a name="address-form-installation"></a>

#### HTML/JavaScript
<a name="address-form-html-js-install"></a>

SDK の次の CSS と JavaScript を HTML コードに含める

```
...
<head>
...
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/@aws/address-form-sdk-js/dist/standalone/address-form-sdk.css"
/>
...
</head>
...
<body>
...
<script src="https://cdn.jsdelivr.net/npm/@aws/address-form-sdk-js/dist/standalone/address-form-sdk.umd.js"></script>
</body>
...
```

#### React
<a name="address-form-react-install"></a>

npm から SDK をインストールします。 `npm install @aws/address-form-sdk-js`

### SDK を使用する
<a name="address-form-use-sdk"></a>

React アプリに次のコードを追加します。API キー`AMAZON_LOCATION_API_KEY`で を更新し、API キーが作成されたリージョン`AMAZON_LOCATION_REGION`で を更新します。フォームが送信されると、`onSubmit`コールバックは`getData`非同期関数を提供します。この関数を `intendedUse`値で呼び出して、フォームデータを取得します。

```
onSubmit: async (getData) => {
  const data = await getData({
    intendedUse: "SingleUse", // or "Storage"
  });
};
```

**注記**  
結果を保存またはキャッシュ`"Storage"`する必要がある場合は、 を使用します。これにより、Amazon Location Service の[意図された使用要件](https://docs.aws.amazon.com/location/latest/developerguide/places-intended-use.html)への準拠が保証されます。

------
#### [ HTML/JavaScript ]

```
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Address Form</title>
    <link
      rel="stylesheet"
      href="https://cdn.jsdelivr.net/npm/@aws/address-form-sdk-js/dist/standalone/address-form-sdk.css"
    />
  </head>
  <body>
    <form
      id="amazon-location-address-form"
      class="address-form flex-row flex-1"
    >
      <div class="flex-column">
        <input
          data-type="address-form"
          name="addressLineOne"
          data-api-name="suggest"
          data-show-current-location="true"
        />
        <input data-type="address-form" name="addressLineTwo" />
        <input data-type="address-form" name="city" />
        <input data-type="address-form" name="province" />
        <input data-type="address-form" name="postalCode" />
        <input data-type="address-form" name="country" />
        <div class="flex-row">
          <button data-type="address-form" type="submit">Submit</button>
          <button data-type="address-form" type="reset">Reset</button>
        </div>
      </div>
      <div data-type="address-form" data-map-style="Standard,Light"></div>
    </form>
    <></script>
script src="https://cdn.jsdelivr.net/npm/@aws/address-form-sdk-js/dist/standalone/address-form-sdk.umd.js"
    <script>
      AddressFormSDK.render({
        root: "#amazon-location-address-form",
        apiKey: "AMAZON_LOCATION_API_KEY",
        region: "AMAZON_LOCATION_REGION",
        showCurrentCountryResultsOnly: true,
        onSubmit: async (getData) => {
          // Get form data with intendedUse parameter
          // Use "SingleUse" for one-time display only
          // Use "Storage" if you plan to store/cache the results - makes an extra API call to grant storage rights
          const data = await getData({ intendedUse: "SingleUse" });
          console.log(data);
        },
      });
    </script>
  </body>
</html>
```

------
#### [ React ]

```
import React from 'react';
import { AddressForm, Flex } from "@aws/address-form-sdk-js";

export default function App() {
  return (
    <AddressForm
      apiKey="AMAZON_LOCATION_API_KEY"
      region="AMAZON_LOCATION_REGION"
      onSubmit={async (getData) => {
        // Get form data with intendedUse parameter
        // Use "SingleUse" for one-time display only
        // Use "Storage" if you plan to store/cache the results - makes an extra API call to grant storage rights
        const data = await getData({ intendedUse: "SingleUse" });
        console.log(data);
      }}
    >
      <Flex
        direction="row"
        flex
      >
        <Flex direction="column">
          <input
            data-api-name="autocomplete"
            data-type="address-form"
            name="addressLineOne"
            placeholder="Enter address"
          />
          <input
            data-type="address-form"
            name="addressLineTwo"
          />
          <input
            data-type="address-form"
            name="city"
            placeholder="City"
          />
          <input
            data-type="address-form"
            name="province"
            placeholder="State/Province"
          />
          <input
            data-type="address-form"
            name="postalCode"
          />
          <input
            data-type="address-form"
            name="country"
            placeholder="Country"
          />
          <Flex direction="row">
            <button address-form="submit">
              Submit
            </button>
            <button address-form="reset">
              Reset
            </button>
          </Flex>
        </Flex>
        <AddressFormMap
          mapStyle={[
            'Standard',
            'Light'
          ]}
         />
      </Flex>
    </AddressForm>
  );
}
```

------

## サポートされている国
<a name="address-form-supported-countries"></a>

Address Form SDK は、Amazon Location Service を使用したアドレスの自動入力をグローバルにサポートしています。以下の国では、アドレスフィールド解析が完全にサポートされており、各アドレスコンポーネントがそれぞれのフィールドに入力されます。
+ オーストラリア (AU)
+ カナダ (CA)
+ フランス (FR)
+ 香港 (HK)
+ アイルランド (IE)
+ ニュージーランド (NZ)
+ フィリピン (PH)
+ シンガポール (SG)
+ 英国 (GB)
+ [米国 (US)]

他のすべての国はプレビューステータスです。プレビュー国では、国固有の形式を指定せずに、完全な住所が `addressLineOne` フィールドに表示されます。今後のリリースでは、この動作が改善され、最新バージョンの SDK を使用してこれらの改善にアクセスできます。

## サポートしている AWS リージョン
<a name="address-form-supported-aws-regions"></a>

Address Form SDK および Address Form Builder ウィザードは、APIs `Current`のバージョンを使用して、Amazon Location Service が動作するすべての AWS リージョンで使用できます。[Amazon Location](https://docs.aws.amazon.com/location/latest/developerguide/location-regions.html) でサポートされているリージョンの完全なリストを表示します。

## API リファレンス
<a name="address-form-api-reference"></a>

[README API リファレンス](https://github.com/aws-geospatial/address-form-sdk-js#api-reference)を参照してください。