

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# SDKs dan kerangka kerja untuk Amazon Location Service
<a name="dev-sdks"></a>

AWS menyediakan Software Development Kits (SDKs) untuk beberapa bahasa pemrograman, memungkinkan Anda untuk dengan mudah mengintegrasikan Amazon Location Service ke dalam aplikasi Anda. Halaman ini menguraikan yang tersedia SDKs, prosedur penginstalannya, dan contoh kode untuk membantu Anda memulai Amazon Location Service di lingkungan pengembangan pilihan Anda.

Ada beberapa alat yang akan membantu Anda menggunakan Amazon Location Service.
+ **AWS SDKs**Kit pengembangan AWS perangkat lunak (SDKs) tersedia dalam banyak bahasa pemrograman populer, menyediakan API, contoh kode, dan dokumentasi yang membuatnya lebih mudah untuk membangun aplikasi dalam bahasa pilihan Anda. AWS SDKs Termasuk Lokasi APIs dan fungsionalitas Amazon inti, termasuk akses ke Peta, Tempat, Rute, Geofencing, dan Pelacak. Untuk mempelajari selengkapnya tentang SDKs tersedia untuk digunakan dengan Amazon Location Service untuk berbagai aplikasi dan bahasa, lihat[SDKs oleh bahasa](dev-by-language.md).
+ **MapLibre**— Amazon Location Service merekomendasikan merender peta menggunakan mesin [MapLibre](https://github.com/maplibre/maplibre-gl-js)rendering. MapLibre adalah mesin untuk menampilkan peta di web atau aplikasi seluler. MapLibre juga memiliki model plugin, dan mendukung antarmuka pengguna untuk mencari dan rute dalam beberapa bahasa dan platform. Untuk mempelajari lebih lanjut tentang penggunaan MapLibre dan fungsionalitas yang disediakannya, lihat[Gunakan MapLibre alat dan pustaka terkait dengan Lokasi Amazon](dev-maplibre.md).
+ **Lokasi Amazon SDKs** — Lokasi Amazon SDKs adalah sekumpulan pustaka open source yang memudahkan pengembangan aplikasi dengan Amazon Location Service. Pustaka menyediakan fungsionalitas untuk mendukung otentikasi aplikasi seluler dan web, pelacakan lokasi untuk aplikasi seluler, konversi antara tipe data Lokasi Amazon dan [GeoJSON](https://geojson.org/), serta paket yang dihosting dari klien Lokasi Amazon untuk SDK v3. AWS Untuk mempelajari lebih lanjut tentang Lokasi Amazon SDKs, lihat[SDKs oleh bahasa](dev-by-language.md).
+ **Amazon Location Migration SDK** - Amazon Location Migration SDK menyediakan jembatan yang memungkinkan Anda untuk memigrasikan aplikasi yang ada dari Google Maps ke Amazon Location. Migration SDK menyediakan opsi untuk aplikasi yang dibuat menggunakan Google Maps SDK JavaScript untuk menggunakan Amazon Location Service tanpa perlu menulis ulang aplikasi atau logika bisnis apa pun jika Amazon Location mendukung kemampuan yang digunakan. Migration SDK mengalihkan semua panggilan API ke Lokasi Amazon, bukan Google Map. Untuk memulai, lihat [SDK Migrasi Lokasi Amazon](https://github.com/aws-geospatial/amazon-location-migration) aktif. GitHub

# Tutorial pengembang
<a name="sdk-how-to"></a>

Gunakan bagian ini untuk mempelajari cara menggunakan berbagai aspek Amazon Location Service SDK.

**Topics**
+ [Cara menggunakan pembantu otentikasi](how-to-auth-helper.md)
+ [Gunakan plugin Amazon Location MapLibre Geocoder GL](dev-maplibre-geocoder.md)
+ [Cara menggunakan Tracking SDKs](dev-tracking-sdk.md)
+ [Gunakan MapLibre alat dan pustaka terkait dengan Lokasi Amazon](dev-maplibre.md)

# Cara menggunakan pembantu otentikasi
<a name="how-to-auth-helper"></a>

Bagian ini memberikan informasi tambahan tentang pembantu otentikasi.

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

Utilitas JavaScript otentikasi Lokasi Amazon membantu dalam mengautentikasi saat melakukan panggilan Amazon Location Service API dari JavaScript aplikasi. Utilitas ini secara khusus mendukung otentikasi menggunakan kunci API atau Amazon Cognito.

**Instalasi**
+ Instal pustaka ini menggunakan NPM:

  ```
  npm install @aws/amazon-location-utilities-auth-helper
  ```
+ Untuk menggunakannya langsung di browser, sertakan yang berikut ini dalam file HTML Anda:

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

### Penggunaan
<a name="loc-sdk-auth-usage"></a>

Untuk menggunakan pembantu otentikasi, impor perpustakaan dan panggil fungsi utilitas yang diperlukan. [Pustaka ini mendukung autentikasi permintaan dari Amazon Location Service SDKs, termasuk [Maps](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-maps/), [Places](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-places/), dan [Routes](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/geo-routes/) mandiri SDKs, serta merender peta dengan MapLibre GL JS.](https://github.com/maplibre/maplibre-gl-js)

**Penggunaan dengan Modul**

Contoh ini menunjukkan penggunaan SDK Places mandiri untuk membuat permintaan yang diautentikasi dengan kunci 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);
```

Contoh ini menunjukkan penggunaan SDK Routes mandiri untuk membuat permintaan yang diautentikasi dengan kunci 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);
```

Contoh ini menggunakan Location SDK dengan autentikasi kunci API:

```
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);
```

**Penggunaan dengan Browser**

Fungsi utilitas dapat diakses di bawah objek global amazonLocationAuth Helper ketika digunakan langsung di lingkungan browser.

Contoh ini menunjukkan permintaan dengan Klien Lokasi Amazon, yang diautentikasi menggunakan kunci API:

```
<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);
```

Contoh ini menunjukkan rendering peta dengan MapLibre GL JS, diautentikasi dengan kunci API:

```
<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}`,
});
```

Contoh ini menunjukkan rendering peta dengan MapLibre GL JS menggunakan Amazon Cognito:

```
<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(),
});
```

**Penggunaan Alternatif dengan Identitas Terautentikasi**

Anda dapat memodifikasi fungsi withIdentityPool Id untuk menyertakan parameter kustom untuk identitas yang diautentikasi:

```
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 membantu mengautentikasi permintaan ke Amazon Location Service APIs dari aplikasi iOS. Ini secara khusus mendukung otentikasi melalui kunci API atau Amazon Cognito.

**Instalasi**
+ Buka Xcode dan pergi ke **File> Add Package Dependencies**.
+ Ketik URL paket ([https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-ios/](https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-ios/)) ke dalam bilah pencarian dan tekan Enter.
+ **Pilih paket "amazon-location-mobile-auth-sdk-ios” dan klik Add Package.**
+ Pilih produk paket “AmazonLocationiOSAuthSDK” dan klik **Add Package**.

### Penggunaan
<a name="loc-sdk-auth-usage"></a>

Setelah menginstal pustaka, gunakan `AuthHelper` kelas untuk mengonfigurasi pengaturan klien untuk kunci API atau Amazon Cognito.

**Kunci API**

Berikut adalah contoh menggunakan Places SDK mandiri dengan autentikasi kunci API:

```
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)
}
```

Berikut adalah contoh menggunakan SDK Routes mandiri dengan autentikasi kunci API:

```
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)
}
```

Berikut adalah contoh menggunakan Location SDK dengan autentikasi kunci API:

```
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)
}
```

Berikut adalah contoh menggunakan SDK Places mandiri dengan Amazon Cognito:

```
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)
}
```

Berikut adalah contoh menggunakan SDK Routes mandiri dengan Amazon Cognito:

```
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)
}
```

Berikut adalah contoh menggunakan Location SDK dengan Amazon Cognito:

```
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 membantu Anda mengautentikasi permintaan ke Amazon Location APIs Service dari aplikasi Android, khususnya mendukung otentikasi menggunakan Amazon Cognito.

**Instalasi**
+ SDK otentikasi ini berfungsi dengan keseluruhan SDK AWS Kotlin. Keduanya SDKs dipublikasikan ke Maven Central. Periksa versi terbaru [SDK autentikasi](https://mvnrepository.com/artifact/software.amazon.location/auth) di Maven Central.
+ Tambahkan baris berikut ke bagian dependensi `build.gradle` file Anda di Android Studio:

  ```
  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")
  ```
+ Untuk Peta, Tempat, dan Rute mandiri SDKs, tambahkan baris berikut:

  ```
  implementation("aws.sdk.kotlin:geomaps:1.3.65")
  implementation("aws.sdk.kotlin:geoplaces:1.3.65")
  implementation("aws.sdk.kotlin:georoutes:1.3.65")
  ```
+ Untuk SDK Lokasi konsolidasi yang mencakup Geofencing dan Pelacakan, tambahkan baris berikut:

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

### Penggunaan
<a name="loc-sdk-auth-usage"></a>

Impor kelas berikut dalam kode Anda:

```
// 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
```

Anda dapat membuat `AuthHelper` dan menggunakannya dengan AWS Kotlin SDK:

**Contoh: Penyedia Kredensi dengan ID Kumpulan Identitas**

```
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())
}
```

**Contoh: Penyedia Kredensi dengan Penyedia Kredenal Kustom**

```
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())
}
```

**Contoh: Penyedia Kredensi dengan Kunci 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())
}
```

Anda dapat menggunakan `LocationCredentialsProvider` untuk memuat MapLibre peta. Inilah contohnya:

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

Gunakan klien yang dibuat untuk melakukan panggilan ke Amazon Location Service. Berikut adalah contoh yang mencari tempat di dekat garis lintang dan bujur tertentu:

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

# Gunakan plugin Amazon Location MapLibre Geocoder GL
<a name="dev-maplibre-geocoder"></a>

Plugin MapLibre geocoder Lokasi Amazon dirancang untuk memudahkan Anda memasukkan fungsionalitas Lokasi Amazon ke dalam JavaScript aplikasi Anda, saat bekerja dengan rendering peta dan geocoding menggunakan perpustakaan. [maplibre-gl-geocoder](https://github.com/maplibre/maplibre-gl-geocoder)

## Penginstalan
<a name="geocoder-installation"></a>

Instal plugin MapLibre geocoder Lokasi Amazon dari NPM untuk penggunaan dengan modul. Ketik perintah ini:

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

Anda juga dapat mengimpor file HTML dan CSS untuk digunakan langsung di browser dengan skrip:

```
<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"
/>
```

## Penggunaan dengan modul - SDK mandiri GeoPlaces
<a name="geocoder-module"></a>

Contoh ini menggunakan [AWS SDK untuk JavaScript V3 untuk](https://github.com/aws/aws-sdk-js-v3) mendapatkan a untuk menyediakan GeoPlacesClient ke perpustakaan dan [AuthHelper](https://github.com/aws-geospatial/amazon-location-utilities-auth-helper-js)untuk mengautentikasi. GeoPlacesClient Ini memungkinkan semua APIs untuk geocoder.

```
// 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());
```

## Penggunaan dengan browser - SDK mandiri GeoPlaces
<a name="geocoder-browser"></a>

Contoh ini menggunakan klien Lokasi Amazon untuk membuat permintaan yang mengautentikasi menggunakan kunci API.

**catatan**  
Beberapa contoh ini menggunakan Lokasi Amazon GeoPlacesClient. Klien ini didasarkan pada [AWS SDK untuk JavaScript V3](https://github.com/aws/aws-sdk-js-v3) dan memungkinkan untuk melakukan panggilan ke Lokasi Amazon melalui skrip yang direferensikan dalam file HTML.

Sertakan yang berikut ini dalam file 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>
```

Sertakan yang berikut ini dalam JavaScript file:

```
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());
```

## Fungsi
<a name="geocoder-functions"></a>

Di bawah ini adalah fungsi yang digunakan dalam plugin MapLibre geocoder Lokasi Amazon:
+ `buildAmazonLocationMaplibreGeocoder`

  Kelas ini menciptakan sebuah instance dari`AmazonLocationMaplibreGeocder`, yang merupakan titik masuk ke yang lain semua panggilan lainnya.

  Menggunakan panggilan `GeoPlacesClient` API mandiri (klien adalah instance dari`GeoPlacesClient`):

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

  Menggunakan panggilan `LocationClient` API terkonsolidasi (klien adalah instance dari`LocationClient`):

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

  Mengembalikan ready-to-use IControl objek yang dapat ditambahkan langsung ke peta.

  ```
  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);
  ```

# Cara menggunakan Tracking SDKs
<a name="dev-tracking-sdk"></a>

Topik ini memberikan informasi tentang cara menggunakan Tracking SDKs.

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

SDK pelacakan seluler Lokasi Amazon menyediakan utilitas yang membantu dengan mudah mengautentikasi, menangkap posisi perangkat, dan mengirim pembaruan posisi ke Pelacak Lokasi Amazon. SDK mendukung pemfilteran lokal pembaruan lokasi dengan interval pembaruan yang dapat dikonfigurasi. Ini mengurangi biaya data dan mengoptimalkan konektivitas intermiten untuk aplikasi iOS Anda.

SDK pelacakan iOS tersedia di GitHub: [Amazon Location Mobile Tracking SDK for](https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios) iOS.

Bagian ini mencakup topik-topik berikut untuk Amazon Location mobile tracking iOS SDK:

**Topics**
+ [Penginstalan](#loc-mobile-tracking-install-ios)
+ [Penggunaan](#loc-mobile-tracking-usage-ios)
+ [Penyaring](#loc-mobile-tracking-ios-filters)
+ [Fungsi pelacakan SDK Seluler iOS](#loc-mobile-tracking-functions)
+ [Contoh](#loc-mobile-tracking-example-ios)

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

Gunakan prosedur berikut untuk menginstal SDK pelacakan seluler untuk iOS:

1. Dalam proyek Xcode Anda, buka **File** dan pilih **Add Package Dependencies**.

1. Ketik URL berikut: [https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/](https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios/) ke dalam bilah pencarian dan tekan tombol enter.

1. Pilih `amazon-location-mobile-tracking-sdk-ios` paket dan klik **Add Package**.

1. Pilih produk `AmazonLocationiOSTrackingSDK` paket dan klik **Add Package**.

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

Prosedur berikut menunjukkan cara membuat pembantu otentikasi menggunakan kredensional dari Amazon Cognito.

1. Setelah menginstal perpustakaan, Anda perlu menambahkan satu atau kedua deskripsi ke dalam `info.plist` file Anda:

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

1. Selanjutnya, impor AuthHelper di kelas Anda:

   ```
   import AmazonLocationiOSAuthSDKimport AmazonLocationiOSTrackingSDK
   ```

1. Kemudian Anda akan membuat `AuthHelper` objek dan menggunakannya dengan AWS SDK, dengan membuat pembantu otentikasi menggunakan kredensi dari Amazon Cognito.

   ```
   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)
   ```

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

SDK iOS pelacakan seluler Lokasi Amazon memiliki tiga filter lokasi bawaan.
+ `TimeLocationFilter`: Memfilter lokasi saat ini yang akan diunggah berdasarkan interval waktu yang ditentukan.
+ `DistanceLocationFilter`: Memfilter pembaruan lokasi berdasarkan ambang jarak yang ditentukan.
+ `AccuracyLocationFilter`: Memfilter pembaruan lokasi dengan membandingkan jarak yang dipindahkan sejak pembaruan terakhir dengan akurasi lokasi saat ini.

Contoh ini menambahkan filter `LocationTracker` pada saat pembuatan:

```
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,
)
```

Contoh ini mengaktifkan dan menonaktifkan filter saat runtime dengan: `LocationTracker`

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

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

## Fungsi pelacakan SDK Seluler iOS
<a name="loc-mobile-tracking-functions"></a>

SDK pelacakan seluler Lokasi Amazon untuk iOS mencakup fungsi-fungsi berikut:
+ **Kelas**: `LocationTracker`

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

  Ini adalah fungsi penginisialisasi untuk membuat objek. `LocationTracker` Ini membutuhkan contoh`LocationCredentialsProvider`, `trackerName` dan secara opsional sebuah instance dari. `LocationTrackingConfig` Jika konfigurasi tidak disediakan, konfigurasi akan diinisialisasi dengan nilai default.
+ **Kelas**: `LocationTracker`

  `setTrackerConfig(config: LocationTrackerConfig)`

  Ini menetapkan konfigurasi Tracker untuk berlaku kapan saja setelah inisialisasi pelacak lokasi.
+ **Kelas**: `LocationTracker`

  `getTrackerConfig()`

  Ini membuat konfigurasi pelacakan lokasi untuk digunakan atau dimodifikasi di aplikasi Anda.

  Pengembalian: `LocationTrackerConfig`
+ **Kelas**: `LocationTracker`

  `getDeviceId()`

  Mendapat Id perangkat yang dihasilkan pelacak lokasi.

  Pengembalian: `String?`
+ **Kelas**: `LocationTracker`

  `startTracking()`

  Memulai proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak.
+ **Kelas**: `LocationTracker`

  `resumeTracking()`

  Melanjutkan proses mengakses lokasi pengguna dan mengirimkannya ke pelacak. AWS 
+ **Kelas**: `LocationTracker`

  `stopTracking()`

  Menghentikan proses melacak lokasi pengguna.
+ **Kelas**: `LocationTracker`

  `startBackgroundTracking(mode: BackgroundTrackingMode)`

  Memulai proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang. `BackgroundTrackingMode`memiliki opsi berikut: 
  + `Active:`Opsi ini tidak secara otomatis menjeda pembaruan lokasi.
  + `BatterySaving:`Opsi ini secara otomatis menjeda pembaruan lokasi.
  + `None:`Opsi ini secara keseluruhan menonaktifkan pembaruan lokasi latar belakang.
+ **Kelas**: `LocationTracker`

  `resumeBackgroundTracking(mode: BackgroundTrackingMode)`

  Melanjutkan proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang.
+ **Kelas**: `LocationTracker`

  `stopBackgroundTracking()`

  Menghentikan proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang.
+ **Kelas**: `LocationTracker`

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

  Mengambil lokasi pelacakan yang diunggah untuk perangkat pengguna antara tanggal dan waktu mulai dan berakhir.

  Pengembalian: `Void`
+ **Kelas**: `LocationTrackerConfig`

  `init()`

  Ini menginisialisasi LocationTrackerConfig dengan nilai default.
+ **Kelas**: `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)`

  Ini menginisialisasi `LocationTrackerConfig` dengan nilai parameter yang ditentukan pengguna. Jika nilai parameter tidak disediakan itu akan diatur ke nilai default.
+ **Kelas**: `LocationFilter`

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

  `LocationFilter`Ini adalah protokol yang dapat diterapkan pengguna untuk implementasi filter khusus mereka. Seorang pengguna perlu mengimplementasikan `shouldUpload` fungsi untuk membandingkan lokasi sebelumnya dan saat ini dan kembali jika lokasi saat ini harus diunggah.

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

Bagian ini merinci contoh penggunaan SDK for iOS Pelacakan Seluler Lokasi Amazon.

**catatan**  
Pastikan bahwa izin yang diperlukan diatur dalam `info.plist` file. Ini adalah izin yang sama yang tercantum di [Penggunaan](#loc-mobile-tracking-usage-ios) bagian ini.

Contoh berikut menunjukkan fungsionalitas untuk melacak lokasi perangkat dan mengambil lokasi yang dilacak:

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

Mulai melacak lokasi:

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

Lanjutkan melacak lokasi:

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

Berhenti melacak lokasi:

```
locationTracker.stopTracking()
```

Mulai pelacakan latar belakang:

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

Lanjutkan pelacakan latar belakang:

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

Untuk menghentikan pelacakan latar belakang:

```
locationTracker.stopBackgroundTracking()
```

Ambil lokasi perangkat yang dilacak dari pelacak:

```
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)
    }
})
}
```

# SDK Pelacakan Seluler Android
<a name="loc-mobile-tracking-android"></a>

SDK pelacakan seluler Lokasi Amazon menyediakan utilitas yang membantu dengan mudah mengautentikasi, menangkap posisi perangkat, dan mengirim pembaruan posisi ke Pelacak Lokasi Amazon. SDK mendukung pemfilteran lokal pembaruan lokasi dengan interval pembaruan yang dapat dikonfigurasi. Ini mengurangi biaya data dan mengoptimalkan konektivitas intermiten untuk aplikasi Android Anda.

SDK pelacakan Android tersedia di GitHub: [Amazon Location Mobile Tracking SDK for](https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-android) Android. [Selain itu, baik SDK otentikasi seluler dan SDK tersedia di AWS repositori Maven.AWS](https://central.sonatype.com/artifact/software.amazon.location/tracking) SDK pelacakan Android dirancang untuk bekerja dengan AWS SDK umum.

Bagian ini mencakup topik-topik berikut untuk Amazon Location mobile tracking Android SDK:

**Topics**
+ [Penginstalan](#loc-mobile-tracking-install-android)
+ [Penggunaan](#loc-mobile-tracking-usage-android)
+ [Penyaring](#loc-mobile-tracking-android-filters)
+ [Fungsi pelacakan SDK Seluler Android](#loc-mobile-tracking-functions)
+ [Contoh](#loc-mobile-tracking-example-android)

## Penginstalan
<a name="loc-mobile-tracking-install-android"></a>

Untuk menginstal SDK, tambahkan baris berikut ke bagian dependensi file build.gradle Anda di Android Studio:

```
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")
```

## Penggunaan
<a name="loc-mobile-tracking-usage-android"></a>

Prosedur ini menunjukkan cara menggunakan SDK untuk mengautentikasi dan membuat objek: `LocationTracker`

**catatan**  
Prosedur ini mengasumsikan Anda telah mengimpor pustaka yang disebutkan di [Penginstalan](#loc-mobile-tracking-install-android) bagian.

1. Impor kelas berikut dalam kode Anda:

   ```
   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. Selanjutnya buat`AuthHelper`, karena `LocationCredentialsProvider` parameter diperlukan untuk membuat `LocationTracker` objek:

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

1. Sekarang, gunakan `LocationCredentialsProvider` dan `LocationTrackerConfig` untuk membuat `LocationTracker` objek:

   ```
   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,
   )
   ```

## Penyaring
<a name="loc-mobile-tracking-android-filters"></a>

Android SDK pelacakan seluler Amazon Location memiliki tiga filter lokasi bawaan.
+ `TimeLocationFilter`: Memfilter lokasi saat ini yang akan diunggah berdasarkan interval waktu yang ditentukan.
+ `DistanceLocationFilter`: Memfilter pembaruan lokasi berdasarkan ambang jarak yang ditentukan.
+ `AccuracyLocationFilter`: Memfilter pembaruan lokasi dengan membandingkan jarak yang dipindahkan sejak pembaruan terakhir dengan akurasi lokasi saat ini.

Contoh ini menambahkan filter `LocationTracker` pada saat pembuatan:

```
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,
)
```

Contoh ini mengaktifkan dan menonaktifkan filter saat runtime dengan: `LocationTracker`

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

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

## Fungsi pelacakan SDK Seluler Android
<a name="loc-mobile-tracking-functions"></a>

SDK for Android pelacakan seluler Lokasi Amazon mencakup fungsi-fungsi berikut:
+ **Kelas**: `LocationTracker`

  `constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,trackerName: String)`, atau `constructor(context: Context,locationCredentialsProvider: LocationCredentialsProvider,clientConfig: LocationTrackerConfig)`

  Ini adalah fungsi penginisialisasi untuk membuat objek. `LocationTracker` Ini membutuhkan contoh`LocationCredentialsProvider`, `trackerName` dan secara opsional sebuah instance dari. `LocationTrackingConfig` Jika konfigurasi tidak disediakan, konfigurasi akan diinisialisasi dengan nilai default.
+ **Kelas**: `LocationTracker`

  `start(locationTrackingCallback: LocationTrackingCallback)`

  Memulai proses mengakses lokasi pengguna dan mengirimkannya ke pelacak Lokasi Amazon.
+ **Kelas**: `LocationTracker`

  `isTrackingInForeground()`

  Memeriksa apakah pelacakan lokasi sedang berlangsung.
+ **Kelas**: `LocationTracker`

  `stop()`

  Menghentikan proses melacak lokasi pengguna.
+ **Kelas**: `LocationTracker`

  `startTracking()`

  Memulai proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak.
+ **Kelas**: `LocationTracker`

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

  Memulai proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang. `BackgroundTrackingMode`memiliki opsi berikut:
  + `ACTIVE_TRACKING`: Opsi ini secara aktif melacak pembaruan lokasi pengguna. 
  + `BATTERY_SAVER_TRACKING`: Opsi ini melacak pembaruan lokasi pengguna setiap 15 menit.
+ **Kelas**: `LocationTracker`

  `stopBackgroundService()`

  Menghentikan proses mengakses lokasi pengguna dan mengirimkannya ke AWS pelacak saat aplikasi berada di latar belakang.
+ **Kelas**: `LocationTracker`

  `getTrackerDeviceLocation()`

  Mengambil lokasi perangkat dari layanan Lokasi Amazon. 
+ **Kelas**: `LocationTracker`

  `getDeviceLocation(locationTrackingCallback: LocationTrackingCallback?)`

  Mengambil lokasi perangkat saat ini dari klien penyedia lokasi gabungan dan mengunggahnya ke pelacak Lokasi Amazon.
+ **Kelas**: `LocationTracker`

  `uploadLocationUpdates(locationTrackingCallback: LocationTrackingCallback?)`

  Mengunggah lokasi perangkat ke layanan Lokasi Amazon setelah memfilter berdasarkan filter lokasi yang dikonfigurasi.
+ **Kelas**: `LocationTracker`

  `enableFilter(filter: LocationFilter)`

  Mengaktifkan filter lokasi tertentu.
+ **Kelas**: `LocationTracker`

  `checkFilterIsExistsAndUpdateValue(filter: LocationFilter)`

  Nonaktifkan filter lokasi tertentu.
+ **Kelas**: `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()) `

  Ini menginisialisasi `LocationTrackerConfig` dengan nilai parameter yang ditentukan pengguna. Jika nilai parameter tidak disediakan, itu akan diatur ke nilai default.
+ **Kelas**: `LocationFilter`

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

  `LocationFilter`Ini adalah protokol yang dapat diterapkan pengguna untuk implementasi filter khusus mereka. Anda perlu mengimplementasikan `shouldUpload` fungsi untuk membandingkan lokasi sebelumnya dan saat ini dan kembali jika lokasi saat ini harus diunggah.

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

Contoh kode berikut menunjukkan fungsionalitas SDK pelacakan seluler.

Contoh ini menggunakan `LocationTracker` untuk memulai dan menghentikan pelacakan di latar belakang:

```
// 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()
```

# Gunakan MapLibre alat dan pustaka terkait dengan Lokasi Amazon
<a name="dev-maplibre"></a>

[MapLibre](https://maplibre.org/)terutama mesin rendering untuk menampilkan peta di web atau aplikasi seluler. Namun, itu juga mencakup dukungan untuk plug-in dan menyediakan fungsionalitas untuk bekerja dengan aspek lain dari Lokasi Amazon. Berikut ini menjelaskan alat yang dapat Anda gunakan, berdasarkan area atau lokasi yang ingin Anda gunakan.

**catatan**  
Untuk menggunakan aspek apa pun dari Lokasi Amazon, instal [AWS SDK untuk bahasa yang ingin Anda gunakan](dev-by-language.md).
+ **Peta**

  Untuk menampilkan peta dalam aplikasi Anda, Anda memerlukan mesin rendering peta yang akan menggunakan data yang disediakan oleh Amazon Location, dan menggambar ke layar. Mesin rendering peta juga menyediakan fungsionalitas untuk menggeser dan memperbesar peta, atau untuk menambahkan penanda atau pin tekan dan anotasi lainnya ke peta.

  Amazon Location Service merekomendasikan merender peta menggunakan mesin [MapLibre](https://github.com/maplibre/maplibre-gl-js)rendering. MapLibre GL JS adalah mesin untuk menampilkan peta JavaScript, sementara MapLibre Native menyediakan peta untuk iOS atau Android.

  MapLibre juga memiliki ekosistem plug-in untuk memperluas fungsionalitas inti. Untuk informasi lebih lanjut, kunjungi [https://maplibre. org/maplibre-gl-js/docs/plugins](https://maplibre.org/maplibre-gl-js/docs/plugins/)/.
+ **Pencarian tempat**

  Untuk membuat antarmuka pengguna pencarian lebih sederhana, Anda dapat menggunakan [MapLibre geocoder](https://github.com/maplibre/maplibre-gl-geocoder) untuk web (aplikasi Android dapat menggunakan [plug-in Android Places](https://github.com/maplibre/maplibre-plugins-android/tree/master/plugin-places)).

  Gunakan [Lokasi Amazon untuk perpustakaan MapLibre geocoder](https://github.com/aws-geospatial/amazon-location-for-maplibre-gl-geocoder?tab=readme-ov-file) untuk menyederhanakan proses menggunakan Lokasi Amazon dengan `amazon-location-for-maplibre-gl-geocoder` di Aplikasi. JavaScript 

  Untuk informasi selengkapnya, lihat [Gunakan plugin Amazon Location MapLibre Geocoder GL](dev-maplibre-geocoder.md).
+ **Rute**
+ **Geofences dan Pelacak**

  MapLibre tidak memiliki rendering atau alat khusus untuk geofences dan pelacakan, tetapi Anda dapat menggunakan fungsionalitas rendering dan [plug-in](https://maplibre.org/maplibre-gl-js/docs/plugins/) untuk menampilkan geofences dan perangkat yang dilacak di peta.

  Perangkat yang dilacak dapat menggunakan [MQTT](tracking-using-mqtt.md) atau mengirim pembaruan secara manual ke Amazon Location Service. Peristiwa geofence dapat ditanggapi menggunakan. [AWS Lambda](https://docs.aws.amazon.com/lambda/)

Banyak pustaka open source tersedia untuk menyediakan fungsionalitas tambahan untuk Amazon Location Service, misalnya [Turf](https://github.com/Turfjs/turf) yang menyediakan fungsionalitas analisis spasial.

Banyak pustaka menggunakan data berformat [GeoJSON](https://geojson.org/) standar terbuka. Amazon Location Service menyediakan library untuk mengonversi respons menjadi GeoJSON untuk digunakan dalam aplikasi. JavaScript Lihat informasi yang lebih lengkap di [SDKs dan kerangka kerja untuk Amazon Location Service](dev-sdks.md). 

# SDKs oleh bahasa
<a name="dev-by-language"></a>

**Versi SDK**  
Kami menyarankan Anda menggunakan versi AWS SDK terbaru, dan lainnya SDKs, yang Anda gunakan dalam proyek Anda, dan untuk tetap SDKs up to date. AWS SDK memberi Anda fitur dan fungsionalitas terbaru, dan juga pembaruan keamanan. Untuk menemukan versi AWS SDK terbaru JavaScript, misalnya, lihat topik [penginstalan browser](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html#In_the_Browser) di *AWS SDK untuk JavaScript dokumentasi*.

Tabel berikut memberikan informasi tentang AWS SDKs dan versi Map Rendering Framework untuk bahasa dan kerangka kerja, berdasarkan jenis aplikasi: aplikasi web, seluler, atau backend.

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

Versi berikut AWS SDKs dan Map Rendering Framework tersedia untuk pengembangan aplikasi web frontend.


| Bahasa/Kerangka | AWS SDK | Kerangka Rendering Peta | 
| --- | --- | --- | 
|  **Sepenuhnya didukung**  | 
|  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)  | 
|  **Sebagian didukung**  | 
|  Bergetar  |  [https://docs.amplify. aws/start/q/integration/flutter](https://docs.amplify.aws/start/q/integration/flutter/)/ Flutter belum sepenuhnya didukung oleh AWS, tetapi dukungan terbatas ditawarkan melalui Amplify.  |  [https://github.com/maplibre/flutter-maplibre-gl](https://github.com/maplibre/flutter-maplibre-gl) Perpustakaan MapLibre Flutter dianggap eksperimental.  | 
|  Node.js  |  [https://aws.amazon.com/sdk-for-javascript/](https://aws.amazon.com/sdk-for-javascript/)  | [https://github.com/maplibre/maplibre-asli](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/)  |  Tidak ada MapLibre dukungan untuk PHP.  | 

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

Versi berikut AWS SDKs dan Map Rendering Framework tersedia untuk pengembangan aplikasi frontend seluler.


| Bahasa/Kerangka | AWS SDK | Kerangka Rendering Peta | 
| --- | --- | --- | 
|  **Sepenuhnya didukung**  | 
|  Java  |  [https://aws.amazon.com/sdk-for-java/](https://aws.amazon.com/sdk-for-java/)  |  [https://github.com/maplibre/maplibre-asli](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: -sdk-android https://github.com/aws-geospatial/ amazon-location-mobile-auth](https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-android) [Amazon Location Service Mobile Tracking SDK for Android: -sdk-android https://github.com/aws-geospatial/ amazon-location-mobile-tracking](https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-android)  |  [https://github.com/maplibre/maplibre-asli](https://github.com/maplibre/maplibre-native) Membutuhkan binding kustom, seperti MapLibre berbasis Java.  | 
|  ObjectiveC  |  [https://github.com/aws-amplify/aws-sdk-ios](https://github.com/aws-amplify/aws-sdk-ios)  |  [https://github.com/maplibre/maplibre-asli](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: -sdk-ios https://github.com/aws-geospatial/ amazon-location-mobile-auth](https://github.com/aws-geospatial/amazon-location-mobile-auth-sdk-ios) [Amazon Location Service Mobile Tracking SDK for iOS: -sdk-ios https://github.com/aws-geospatial/ amazon-location-mobile-tracking](https://github.com/aws-geospatial/amazon-location-mobile-tracking-sdk-ios)  |  [https://github.com/maplibre/maplibre-asli](https://github.com/maplibre/maplibre-native)  | 
|  **Sebagian didukung**  | 
|  Bergetar  |  [https://docs.amplify. aws/start/q/integration/flutter](https://docs.amplify.aws/start/q/integration/flutter/)/ Flutter belum sepenuhnya didukung oleh AWS, tetapi dukungan terbatas ditawarkan melalui Amplify.  |  [https://github.com/maplibre/flutter-maplibre-gl](https://github.com/maplibre/flutter-maplibre-gl) Perpustakaan MapLibre Flutter dianggap eksperimental.  | 

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

Berikut ini AWS SDKs tersedia untuk pengembangan aplikasi backend. Kerangka Rendering Peta tidak tercantum di sini, karena rendering peta biasanya tidak diperlukan untuk aplikasi backend.


| Bahasa | 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 untuk Rust ada di pratinjau pengembang.  | 

------

# Peta Rendering SDK menurut bahasa
<a name="map-rendering-by-language"></a>

Sebaiknya rendering peta Amazon Location Service menggunakan mesin [MapLibre](https://github.com/maplibre/maplibre-gl-js)rendering.

MapLibre adalah mesin untuk menampilkan peta di web atau aplikasi seluler. MapLibrejuga memiliki model plugin dan mendukung antarmuka pengguna untuk mencari dan rute dalam beberapa bahasa dan platform. 

Untuk mempelajari lebih lanjut tentang penggunaan MapLibre dan fungsionalitas yang disediakannya, lihat [Gunakan MapLibre alat dan pustaka terkait dengan Lokasi Amazon](dev-maplibre.md) dan[Cara menggunakan peta dinamis](dynamic-maps-how-to.md). 

Tabel berikut memberikan informasi tentang SDKs versi Map Rendering untuk bahasa dan kerangka kerja, berdasarkan jenis aplikasi: aplikasi web atau seluler.

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

Berikut Map Rendering SDKs tersedia untuk pengembangan aplikasi web frontend.


| Bahasa/Kerangka | Kerangka Rendering Peta | 
| --- | --- | 
|  **Sepenuhnya didukung**  | 
|  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)  | 
|  **Sebagian didukung**  | 
|  Bergetar  |  [https://github.com/maplibre/flutter-maplibre-gl](https://github.com/maplibre/flutter-maplibre-gl) Perpustakaan MapLibre Flutter dianggap eksperimental.  | 
|  Node.js  |   Tidak ada MapLibre dukungan untuk Node.js.  | 
|  PHP  |   Tidak ada MapLibre dukungan untuk PHP.  | 

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

Map Rendering berikut SDKs tersedia untuk pengembangan aplikasi frontend mobile.


| Bahasa/Kerangka | Kerangka Rendering Peta | 
| --- | --- | 
|  **Sepenuhnya didukung**  | 
|  Java  |  [https://github.com/maplibre/maplibre-asli](https://github.com/maplibre/maplibre-native)  | 
|  Kotlin  |  [https://github.com/maplibre/maplibre-asli](https://github.com/maplibre/maplibre-native) Membutuhkan binding kustom, seperti MapLibre berbasis Java.  | 
|  ObjectiveC  |  [https://github.com/maplibre/maplibre-asli](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-asli](https://github.com/maplibre/maplibre-native)  | 
|  **Sebagian didukung**  | 
|  Bergetar  |  [https://github.com/maplibre/flutter-maplibre-gl](https://github.com/maplibre/flutter-maplibre-gl) Perpustakaan MapLibre Flutter dianggap eksperimental.  | 

------

# Formulir Alamat SDK
<a name="address-form-sdk"></a>

SDK Formulir Alamat merampingkan pembuatan formulir entri alamat pintar. Formulir alamat yang dibuat dengan SDK memberikan saran alamat yang relevan saat pengguna mulai mengetik. Ketika pengguna memilih saran, formulir alamat secara otomatis mengisi bidang seperti kota, negara bagian, dan kode pos. Ini mengurangi kesalahan dan mempercepat entri data dengan meminimalkan input manual. Pengguna juga dapat melihat pratinjau alamat yang dipilih pada peta dan menyesuaikan pin lokasinya untuk menunjukkan pintu masuk atau lokasi pengambilan tertentu, secara signifikan meningkatkan akurasi.

![\[Demonstrasi SDK Formulir Alamat yang menunjukkan fungsionalitas pelengkapan otomatis\]](http://docs.aws.amazon.com/id_id/location/latest/developerguide/images/address-form-demo.gif)


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

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

Coba [demo formulir alamat](https://aws-geospatial.github.io/address-form-sdk-js/) yang berfungsi penuh. 

### Bangun Sendiri
<a name="address-form-builder"></a>

Langsung [Memulai](#address-form-getting-started) ke mulai menerapkan formulir alamat menggunakan Address Form SDK, atau coba pendekatan tanpa kode dengan [wizard Pembuat Formulir Alamat](https://console.aws.amazon.com/location/solution-builder/home#/address-form) WYSIWYG Location Service, yang didukung oleh SDK ini dan dapat diakses di konsol Amazon Location Service di. [https://console.aws.amazon.com/location/](https://console.aws.amazon.com/location/) Wizard interaktif ini memungkinkan Anda membuat formulir yang disesuaikan dengan saran prediktif, populasi bidang otomatis, dan tata letak yang fleksibel. Pengembang dapat mengunduh ready-to-use paket di React JavaScript, React TypeScript, atau mandiri HTML/JavaScript untuk memudahkan integrasi tanpa menulis kode apa pun.

## Fitur Utama
<a name="address-form-features"></a>

Fitur utama SDK Formulir Alamat meliputi:
+ Menyediakan saran typeahead bawaan untuk alamat dan POIs, mempercepat entri data.
+ Mengaktifkan pencarian tipe tempat yang dapat dikonfigurasi (misalnya, kode pos, lokalitas) untuk hasil yang lebih tepat.
+ Menawarkan deteksi lokasi browser otomatis untuk memusatkan pengguna dengan cepat di area mereka saat ini.
+ Menampilkan visualisasi peta bawaan untuk kejelasan dan konteks yang lebih besar.
+ Memungkinkan lokasi alamat disesuaikan pada peta tanpa kehilangan lokasi yang disediakan sistem, memastikan akurasi dan kontrol.
+ Termasuk alat pembuat WYSIWYG yang tidak memerlukan pengkodean, menghemat waktu dan tenaga.
+ Menerapkan debouncing dan caching untuk typeahead untuk mengoptimalkan kinerja APIs dan mengurangi biaya.
+ Mendukung kustomisasi gaya agar sesuai dengan merek aplikasi dan pengalaman pengguna Anda.

Ini menggunakan operasi Amazon Location Service API berikut untuk memberikan informasi alamat ke formulir alamat:

**[GetTile](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetTile.html)**  
Mengambil ubin peta untuk merender peta interaktif untuk memvisualisasikan lokasi alamat dan menyesuaikan posisi alamat.

**[Pelengkapan otomatis](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_Autocomplete.html)**  
Memberikan saran alamat real-time saat pengguna mengetik.

**[Sarankan](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_Suggest.html)**  
Memberikan alamat real-time dan saran POI saat pengguna mengetik.

**[ReverseGeocode](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_ReverseGeocode.html)**  
Mengonversi lokasi pengguna saat ini ke alamat alamat terdekat yang diketahui jika mereka memilih untuk mengisi alamat mereka secara otomatis berdasarkan lokasi mereka saat ini.

**[GetPlace](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_GetPlace.html)**  
Mengambil informasi tempat terperinci untuk alamat yang dipilih setelah memilih alamat dari hasil Autocomplete atau Suggest API.

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

SDK gratis dan [bersumber terbuka](https://github.com/aws-geospatial/address-form-sdk-js) di bawah lisensi Apache-2.0. Anda hanya membayar untuk penggunaan API. Silakan lihat [halaman harga Amazon Location Service](https://aws.amazon.com/location/pricing/).

## Memulai
<a name="address-form-getting-started"></a>

Address Form SDK dapat digunakan dalam aplikasi React atau dalam HTML dan JavaScript halaman mandiri. Mulailah dengan mengikuti petunjuk di bawah ini.

### Prasyarat
<a name="address-form-prerequisites"></a>

**catatan**  
SDK Formulir Alamat memerlukan kunci API dengan izin yang diperlukan agar berfungsi dengan baik. Buat kunci API dengan izin berikut menggunakan [wizard Address Form SDK Builder](https://console.aws.amazon.com/location/solution-builder/home#/address-form) di Amazon Location Service console, atau ikuti petunjuk di bawah ini untuk membuatnya secara manual.

Penggunaan SDK Formulir Alamat mengharuskan tindakan berikut diizinkan dalam kebijakan kunci API:
+ `geo-maps:GetTile`- Ini diperlukan saat menampilkan komponen peta. Lihat referensi [GetTile](https://docs.aws.amazon.com/location/latest/APIReference/API_geomaps_GetTile.html)API.
+ `geo-places:Autocomplete`- Ini diperlukan saat menggunakan `Autocomplete` operasi untuk fungsionalitas typeahead. Lihat referensi [Autocomplete](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_Autocomplete.html) API.
+ `geo-places:Suggest`- Ini diperlukan saat menggunakan `Suggest` operasi untuk fungsionalitas typeahead. Lihat referensi [Suggest](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_Suggest.html) API.
+ `geo-places:ReverseGeocode`- Ini diperlukan saat mengizinkan pengguna untuk menyediakan lokasi mereka saat ini menggunakan API geolokasi browser. Lihat referensi [ReverseGeocode](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_ReverseGeocode.html)API.
+ `geo-places:GetPlace`- Ini diperlukan saat menggunakan fungsionalitas typeahead. Lihat referensi [GetPlace](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_GetPlace.html)API.

Ikuti panduan [Gunakan Kunci API untuk mengautentikasi](https://docs.aws.amazon.com/location/latest/developerguide/using-apikeys.html) untuk membuat kunci API Amazon Location Service dengan izin yang diperlukan.

Contoh kebijakan kunci untuk [CreateKey](https://docs.aws.amazon.com/location/latest/APIReference/API_geotags_CreateKey.html)API dengan izin yang diperlukan:

#### CreateKey meminta izin Formulir Alamat
<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"
    ]
  }
}
```

### Penginstalan
<a name="address-form-installation"></a>

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

Sertakan CSS berikut dan JavaScript untuk SDK dalam kode HTML Anda

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

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

Instal SDK dari npm: `npm install @aws/address-form-sdk-js`

### Gunakan SDK
<a name="address-form-use-sdk"></a>

Tambahkan kode berikut ke aplikasi React Anda. Perbarui `AMAZON_LOCATION_API_KEY` dengan kunci API Anda dan `AMAZON_LOCATION_REGION` dengan wilayah tempat kunci API dibuat. Saat formulir dikirimkan, `onSubmit` callback menyediakan fungsi `getData` async. Panggil fungsi ini dengan `intendedUse` nilai untuk mengambil data formulir.

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

**catatan**  
Gunakan `"Storage"` jika Anda perlu menyimpan atau menyimpan hasil cache. Ini memastikan kepatuhan terhadap [persyaratan penggunaan yang dimaksudkan](https://docs.aws.amazon.com/location/latest/developerguide/places-intended-use.html) oleh Amazon Location Service.

------
#### [ 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>
  );
}
```

------

## Negara yang Didukung
<a name="address-form-supported-countries"></a>

Address Form SDK mendukung pengisian otomatis alamat secara global menggunakan Amazon Location Service. Negara-negara berikut memiliki dukungan penuh dengan parsing bidang alamat, di mana setiap komponen alamat diisi ke dalam bidangnya masing-masing:
+ Australia (AU)
+ Kanada (CA)
+ Prancis (FR)
+ Hong Kong (HK)
+ Irlandia (IE)
+ Selandia Baru (NZ)
+ Filipina (PH)
+ Singapura (SG)
+ Britania Raya (GB)
+ Amerika Serikat (US)

Semua negara lain berada dalam status Pratinjau. Negara pratinjau menampilkan alamat lengkap di `addressLineOne` bidang tanpa format khusus negara. Rilis mendatang akan meningkatkan perilaku ini dan Anda dapat mengakses peningkatan ini dengan menggunakan SDK versi terbaru.

## Wilayah AWS yang Didukung
<a name="address-form-supported-aws-regions"></a>

Panduan Address Form SDK dan Address Form Builder tersedia di semua wilayah AWS tempat Amazon Location Service beroperasi, menggunakan `Current` versinya APIs. Lihat daftar lengkap wilayah yang didukung di wilayah yang [didukung Lokasi Amazon](https://docs.aws.amazon.com/location/latest/developerguide/location-regions.html).

## Referensi API
<a name="address-form-api-reference"></a>

Lihat [Referensi API README](https://github.com/aws-geospatial/address-form-sdk-js#api-reference).