Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.
Gen1 DocsLegacy

Page updated Mar 26, 2026

Amplify Geo のセットアップ

Amplify は、Web アプリケーション向けのマップおよび場所検索用の API とマップ UI コンポーネントを提供します。わずか数行のコードで、アプリにマップと場所検索機能を追加できます。以下は、AWS Cloud Development Kit (AWS CDK) を使用して Amazon Location Services で実装された Geo リソースを作成する例です。ただし、このサービスにはまだ公式なハンドライティング (L2) コンストラクトがないことに注意してください。

amplify/backend.ts
import { defineBackend } from "@aws-amplify/backend";
import { Policy, PolicyStatement } from "aws-cdk-lib/aws-iam";
import { CfnMap } from "aws-cdk-lib/aws-location";
import { Stack } from "aws-cdk-lib/core";
import { auth } from "./auth/resource";
import { data } from "./data/resource";
const backend = defineBackend({
auth,
data,
// additional resources
});
const geoStack = backend.createStack("geo-stack");
// create a location services map
const map = new CfnMap(geoStack, "Map", {
mapName: "myMap",
description: "Map",
configuration: {
style: "VectorEsriNavigation",
},
pricingPlan: "RequestBasedUsage",
tags: [
{
key: "name",
value: "myMap",
},
],
});
// create an IAM policy to allow interacting with geo resource
const myGeoPolicy = new Policy(geoStack, "GeoPolicy", {
policyName: "myGeoPolicy",
statements: [
new PolicyStatement({
actions: [
"geo:GetMapTile",
"geo:GetMapSprites",
"geo:GetMapGlyphs",
"geo:GetMapStyleDescriptor",
],
resources: [map.attrArn],
}),
],
});
// apply the policy to the authenticated and unauthenticated roles
backend.auth.resources.authenticatedUserIamRole.attachInlinePolicy(myGeoPolicy);
backend.auth.resources.unauthenticatedUserIamRole.attachInlinePolicy(myGeoPolicy);
// patch the map resource to the expected output configuration
backend.addOutput({
geo: {
aws_region: geoStack.region,
maps: {
items: {
[map.mapName]: {
style: "VectorEsriNavigation",
},
},
default: map.mapName,
},
},
});

Amplify Geo は、モバイルアプリケーション開発用の API とマップ UI コンポーネントを提供しており、わずか数行のコードでアプリにマップを追加できます。Amplify Geo API は Amazon Location Service を使用して実装されており、MapLibre のマップ UI コンポーネントは既に Geo API と統合されています。

前提条件

  • Amplify ライブラリが統合された、少なくとも Android SDK API レベル 24 をターゲットとする Android アプリケーション

Amplify ライブラリをインストールする

以下の依存関係を build.gradle.kts (Module :app) ファイルに追加し、プロンプトが表示されたら「Sync Now」をクリックします。

app/build.gradle.kts
android {
compileOptions {
// Support for modern Java features
isCoreLibraryDesugaringEnabled = true
}
}
dependencies {
// Amplify API dependencies
implementation("com.amplifyframework:aws-auth-cognito:ANDROID_VERSION")
implementation("com.amplifyframework:aws-geo-location:ANDROID_VERSION")
// ... other dependencies
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:ANDROID_DESUGAR_VERSION")
}

注: Geo プラグインは Cognito Auth に依存しています。

Amplify Geo を初期化する

Amplify Geo を初期化するには、Amplify.addPlugin() メソッドを使用して AWS Location Geo プラグインを追加します。次に、Amplify.configure() を呼び出して Amplify の設定を完了します。

アプリケーションクラスの onCreate() メソッドに次のコードを追加します。

Amplify.configure 関数を呼び出す前に、コンソールから amplify_outputs.json ファイルをダウンロードするか、次のコマンドを使用して生成してください。

Terminal
npx ampx generate outputs --app-id <app-id> --branch main --out-dir app/src/main/res/raw

次に、生成またはダウンロードしたファイルが Android プロジェクトの適切なリソースディレクトリ(例えば app/src/main/res/raw)に配置されていることを確認してください。そうしないと、アプリケーションをコンパイルできません。

Amplify.addPlugin(new AWSCognitoAuthPlugin());
Amplify.addPlugin(new AWSLocationGeoPlugin());
Amplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), getApplicationContext());

クラスは次のようになります:

public class MyAmplifyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
try {
Amplify.addPlugin(new AWSCognitoAuthPlugin());
Amplify.addPlugin(new AWSLocationGeoPlugin());
Amplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), getApplicationContext());
Log.i("MyAmplifyApp", "Initialized Amplify");
} catch (AmplifyException error) {
Log.e("MyAmplifyApp", "Could not initialize Amplify", error);
}
}
}
Amplify.addPlugin(AWSCognitoAuthPlugin())
Amplify.addPlugin(AWSLocationGeoPlugin())
Amplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), applicationContext)

クラスは次のようになります:

class MyAmplifyApp : Application() {
override fun onCreate() {
super.onCreate()
try {
Amplify.addPlugin(AWSCognitoAuthPlugin())
Amplify.addPlugin(AWSLocationGeoPlugin())
Amplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), applicationContext)
Log.i("MyAmplifyApp", "Initialized Amplify")
} catch (error: AmplifyException) {
Log.e("MyAmplifyApp", "Could not initialize Amplify", error)
}
}
}
RxAmplify.addPlugin(new AWSCognitoAuthPlugin());
RxAmplify.addPlugin(new AWSLocationGeoPlugin());
RxAmplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), getApplicationContext());

クラスは次のようになります:

public class MyAmplifyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
try {
RxAmplify.addPlugin(new AWSCognitoAuthPlugin());
RxAmplify.addPlugin(new AWSLocationGeoPlugin());
RxAmplify.configure(AmplifyOutputs.fromResource(R.raw.amplify_outputs), getApplicationContext());
Log.i("MyAmplifyApp", "Initialized Amplify");
} catch (AmplifyException error) {
Log.e("MyAmplifyApp", "Could not initialize Amplify", error);
}
}
}

このアプリケーションをビルドして実行すると、コンソールウィンドウに以下が表示されます:

Initialized Amplify

注:

  • 既存の Amazon Location Service リソースを使用したい場合は、このガイドに従ってください。
  • Geo で直接サポートされていない Amazon Location Service API を使用したい場合は、エスケープハッチを使用して Amazon Location Service SDK にアクセスしてください。

参考資料

Location Construct Library

マップの料金プラン

マップの例の料金プランは RequestBasedUsage に設定されています。 料金プランの詳細については、ロケーションサービスの料金ロケーションサービスの利用規約(セクション 82.5)を参照することをお勧めします。