翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
追跡を開始する
このセクションでは、デバイスの位置をキャプチャする追跡アプリケーションを構築する手順を説明します。
トラッカーを作成する
トラッカーリソースを作成して、デバイスからの位置の更新を保存して処理します。Amazon Location Service コンソール、 AWS CLI、または Amazon Location APIsを使用できます。
トラッカーリソースに保存される位置の更新はそれぞれ、位置精度の測定値と、位置またはデバイスに関するメタデータで保存したいものを最大 3 つ含めることができます。メタデータはキーと値がペアとして保存されており、速度、方向、タイヤ空気圧、エンジン温度などの情報を保存できます。
トラッカーは、位置の更新を受信するとフィルタリングします。これにより、ジッターと呼ばれるデバイス経路の視覚的なノイズが減り、誤ったジオフェンスへの出入りイベントの数が減ります。そして、ジオフェンス評価が開始される数も減り、コストを管理できます。
トラッカーには 3 つの位置フィルターオプションがあります。コスト管理と位置情報の更新におけるジッターの軽減に役立ちます。
-
精度ベース — 精度測定が可能なあらゆるデバイスで使用できます。精度測定は、ほとんどのモバイル機器で提供されます。各位置測定の精度は、GPS 衛星の受信状況、地形、Wi-Fi デバイスや Bluetooth デバイスまでの距離など、さまざまな環境要因の影響を受けます。モバイル機器を含むほとんどのデバイスでは、測定と同時にその精度も推定できます。AccuracyBased
フィルタリングでは、デバイスの移動距離が測定精度より少ない場合、Amazon Location は位置の更新を無視します。例えば、デバイスから 2 つの連続した更新を受信し、その精度が 5 m と 10 m だった場合、デバイスの移動距離が 15 m 未満であれば 2 回目の更新は無視されます。Amazon Location は、無視した更新をジオフェンスと比較して評価したり、保存したりしません。
精度が提供されない場合はゼロとして扱われ、測定値は完全に正確であると見なされます。
精度ベースのフィルタリングを使用してすべてのフィルタリングを削除することもできます。精度ベースのフィルタリングを選択したものの、すべての精度データをゼロに上書きしたり、精度を完全に無視した場合、Amazon Location は更新をフィルタリングしません。
-
距離ベース — 使用しているデバイスでは正確な測定値が得られないが、フィルタリングを活用してジッターを減らし、コストを管理したい場合に使用します。DistanceBased
フィルタリングでは、デバイスの移動が 30 m (98.4 フィート) 未満の場合、ロケーションの更新は無視されます。DistanceBased
位置フィルターを使用すると、Amazon Location は無視した更新をジオフェンスと比較して評価したり、保存したりしません。
iOS および Android デバイスの平均精度を含め、ほとんどのモバイル機器の精度は 15m 以内です。ほとんどのアプリケーションでは、DistanceBased
フィルタリングを使用することで、デバイスの軌跡を地図上に表示するときに位置が不正確になることによる影響や、デバイスがジオフェンスの境界近くにあるときに複数の連続した出入りイベントによるバウンス効果を減らすことができます。また、リンクされたジオフェンスと比較して評価するリクエストや、デバイスの位置を取得するリクエストが減るので、アプリケーションのコスト削減にも役立ちます。
-
時間ベース — (デフォルト) デバイスが位置の更新を非常に頻繁に (30 秒に 1 回以上) 送信し、すべての更新を保存せずにほぼリアルタイムでジオフェンスの評価を行いたい場合に使用します。TimeBased
フィルタリングでは、位置の更新ごとに、リンクされたジオフェンスコレクションと比較して評価しますが、すべてが保存されるわけではありません。更新頻度が 30 秒を超える場合、一意のデバイス ID ごとに 30 秒あたり 1 つの更新のみが保存されます。
フィルタリング方法や位置更新の頻度を決める際には、トラッキングアプリケーションのコストに留意してください。位置の更新ごとに請求され、リンクされた各ジオフェンスコレクションと比較して評価する際にも 1 回請求されます。例えば、時間ベースのフィルタリングを使用する場合で、トラッカーが 2 つのジオフェンスコレクションにリンクされている場合は、位置の更新ごとに 1 回の位置更新リクエストと 2 回のジオフェンスコレクション評価としてカウントされます。デバイスの位置更新を 5 秒ごとに報告し、時間ベースのフィルタリングを使用している場合は、デバイスごとに 1 時間あたり 720 回の位置更新リクエストと 1,440 回のジオフェンス評価について課金されます。
請求額は、各コレクション内のジオフェンスの数に影響されません。各ジオフェンスコレクションには最大 50,000 のジオフェンスを含めることができるため、ジオフェンスの評価コストを削減するために、ジオフェンスをできるだけ少ないコレクションにまとめることをお勧めします。
デフォルトでは、追跡対象デバイスがリンクされたジオフェンスに出入りするたびに EventBridge イベントが発生します。詳細については、「トラッカーをジオフェンスコレクションにリンクする」を参照してください。
トラッカーリソースのすべてのフィルターされた位置更新のイベントを有効にできます。詳細については、「トラッカーの更新イベントを有効にします。」を参照してください。
独自の AWS KMS カスタマーマネージドキーを使用してデータを暗号化する場合、バウンディングポリゴンクエリ機能はデフォルトで無効になります。これは、このバウンディングポリゴンクエリ機能を使用すると、デバイスの位置の表現が AWS KMS マネージドキーを使用して暗号化されないためです。ただし、デバイスの正確な位置は引き続き顧客管理キーを使用して暗号化されます。
Bounding Polygon Queries 機能を使用するには、トラッカーを作成または更新するときに KmsKeyEnableGeospatialQueries
パラメータを true に設定します。
- Console
-
Amazon Location コンソールを使用してトラッカーを作成するには
-
Amazon Location Service コンソール (https://console.aws.amazon.com/location/) を開きます。
-
左のナビゲーションペインから、[トラッカー] を選択します。
-
トラッカーを作成を選択します。
-
以下のフィールドに入力します。
-
[位置フィルター] で、トラッカーリソースの使用目的に最も適したオプションを選択します。[位置フィルター] を設定しない場合、デフォルト設定は TimeBased
です。詳細については、このガイドの「トラッカー」と「Amazon Location Service トラッカー API リファレンス」の「PositionFiltering
」を参照してください。
-
(オプショナル) タグに、タグのキーと値を入力します。これにより、新しいジオフェンスコレクションにタグが追加されます。詳細については、リソースにタグを付けるを参照してください。
-
(オプション) [顧客管理キーの暗号化] で、[顧客管理キーの追加] を選択できます。これにより、デフォルトの AWS 所有暗号化で作成、所有、管理する対称カスタマーマネージドキーが追加されます。詳細については、「保管中のデータの暗号化」を参照してください。
-
(オプション) でKmsKeyEnableGeospatialQueries、地理空間クエリ を有効にすることを選択できます。これにより、Bounding Polygon Queries 機能を使用しながら、顧客の AWS KMS 管理キーを使用してデータを暗号化できます。
Bounding Polygon Queries 機能を使用する場合、デバイスの位置情報は AWS KMS
顧客管理キーでは暗号化されません。ただし、デバイスの正確な位置は引き続き顧客管理キーを使用して暗号化されます。
-
(オプション) EventBridge 設定 で、フィルタリングされた位置更新の EventBridge イベントを有効にするように選択できます。これにより、このトラッカー内のデバイスの位置更新が位置フィルターの評価を満たすたびにイベントが送信されます。
-
トラッカーを作成を選択します。
- API
-
Amazon Location API を使用してトラッカーを作成するには
Amazon Location Trackers API の CreateTracker
オペレーションを使用してください。
次の例では、 API リクエストを使用して、 というトラッカーを作成しますExampleTracker
。トラッカーリソースは、カスタマーデータ を暗号化するためのカスタマーマネージド AWS KMS キーに関連付けられており、 で位置の更新を有効に EventBridgeしません。
POST /tracking/v0/trackers
Content-type: application/json
{
"TrackerName": "ExampleTracker",
"Description": "string",
"KmsKeyEnableGeospatialQueries": false,
"EventBridgeEnabled": false,
"KmsKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
"PositionFiltering": "AccuracyBased",
"Tags": {
"string" : "string"
}
}
KmsKeyEnableGeospatialQueries
を有効にしたトラッカーを作成する
次の例では、KmsKeyEnableGeospatialQueries
パラメータが true に設定されています。これにより、カスタマー AWS KMS マネージドキーを使用してデータを暗号化しながら、バウンディングポリゴンクエリ機能を使用できます。
Bounding Polygon Queries 機能の使用方法については、「」を参照してください
バウンディングポリゴンクエリ機能を使用する場合、デバイスの位置の表現は AWS KMS マネージドキーを使用して暗号化されません。ただし、デバイスの正確な位置は引き続き顧客管理キーを使用して暗号化されます。
POST /tracking/v0/trackers
Content-type: application/json
{
"TrackerName": "ExampleTracker
",
"Description": "string",
"KmsKeyEnableGeospatialQueries": true,
"EventBridgeEnabled": false,
"KmsKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab
",
"PositionFiltering": "AccuracyBased
",
"Tags": {
"string" : "string"
}
}
- AWS CLI
-
AWS CLI
コマンドを使用してトラッカーを作成するには
create-tracker
コマンドを実行します。
次の例では、 を使用して AWS CLI というトラッカーを作成しますExampleTracker
。トラッカーリソースは、カスタマーデータ を暗号化するためにカスタマーマネージド AWS KMS キーに関連付けられ、 で位置の更新を有効に EventBridgeしません。
aws location \
create-tracker \
--tracker-name "ExampleTracker
" \
--position-filtering "AccuracyBased
" \
--event-bridge-enabled false \
--kms-key-enable-geospatial-queries false \
--kms-key-id "1234abcd-12ab-34cd-56ef-1234567890ab
"
KmsKeyEnableGeospatialQueries
を有効にしたトラッカーを作成する
次の例では、KmsKeyEnableGeospatialQueries
パラメータが true に設定されています。これにより、カスタマー AWS KMS マネージドキーを使用してデータを暗号化しながら、バウンディングポリゴンクエリ機能を使用できます。
Bounding Polygon Queries 機能の使用方法については、「」を参照してください
バウンディングポリゴンクエリ機能を使用する場合、デバイスの位置の表現は AWS KMS マネージドキーを使用して暗号化されません。ただし、デバイスの正確な位置は引き続き顧客管理キーを使用して暗号化されます。
aws location \
create-tracker \
--tracker-name "ExampleTracker
" \
--position-filtering "AccuracyBased
" \
--event-bridge-enabled false \
--kms-key-enable-geospatial-queries true \
--kms-key-id "1234abcd-12ab-34cd-56ef-1234567890ab
"
トラッカーの作成後に説明 、位置フィルタリング 、およびEventBridge 設定を編集するには、トラッカーの編集 を選択します。
リクエストを認証する
トラッカーリソースを作成し、ジオフェンスに対してデバイス位置の評価を始める準備ができたら、リクエストの認証方法を選択します。
-
サービスにアクセスする方法については、「Amazon Location Service へのアクセス」を参照してください。
-
認証されていないリクエストでデバイスの位置をパブリッシュしたい場合は、Amazon Cognito を使用するとよいでしょう。
例
次の例は、AWS JavaScript SDK v3 と Amazon Location を使用して、Amazon Cognito ID プールを認証に使用する方法を示していますJavaScript 認証ヘルパー。
import { LocationClient, BatchUpdateDevicePositionCommand } from "@aws-sdk/client-location";
import { withIdentityPoolId } from "@aws/amazon-location-utilities-auth-helper";
// Unauthenticated identity pool you created
const identityPoolId = "us-east-1:1234abcd-5678-9012-abcd-sample-id
";
// Create an authentication helper instance using credentials from Cognito
const authHelper = await withIdentityPoolId(identityPoolId);
const client = new LocationClient({
region: "us-east-1
", // The region containing both the identity pool and tracker resource
...authHelper.getLocationClientConfig(), // Provides configuration required to make requests to Amazon Location
});
const input = {
TrackerName: "ExampleTracker
",
Updates: [
{
DeviceId: "ExampleDevice-1
",
Position: [-123.4567, 45.6789],
SampleTime: new Date("2020-10-02T19:09:07.327Z"),
},
{
DeviceId: "ExampleDevice-2
",
Position: [-123.123, 45.123],
SampleTime: new Date("2020-10-02T19:10:32Z"),
},
],
};
const command = new BatchUpdateDevicePositionCommand(input);
// Send device position updates
const response = await client.send(command);
トラッカーをデバイスの位置で更新する
デバイスを追跡するには、デバイスの位置の更新をトラッカーに送信します。これらのデバイス位置やデバイス位置履歴は、後でトラッカーリソースから取得できます。
位置の更新には、デバイス ID、タイムスタンプ、位置が含まれている必要があります。他にも、精度や、キーと値がペアとなったメタデータを最大 3 つまで含めることもできます。
トラッカーが 1 つ以上のジオフェンスコレクションにリンクされている場合、(トラッカーに指定したフィルタリングルールに従って) それらのジオフェンスに対して更新が評価されます。デバイスがジオフェンスエリアに違反した場合 (エリア内から外部に移動するか、その逆の場合)、 でイベントを受信します EventBridge。これらの ENTER
や EXIT
のイベントには、デバイス ID、タイムスタンプ、関連するメタデータなどの位置の更新詳細が含まれます。
デバイスの更新を送信するには、以下のいずれかの方法を使用してください。
- API
-
Amazon Location API を使用して位置更新を送信するには
Amazon Location Trackers API の BatchUpdateDevicePosition
オペレーションを使用してください。
次の例では、 API リクエストを使用して、 のデバイス位置の更新をトラッカー ExampleDevice
に投稿しますExampleTracker
。
POST /tracking/v0/trackers/ExampleTracker
/positions
Content-type: application/json
{
"Updates": [
{
"DeviceId": "1",
"Position": [
-123.12245146162303, 49.27521118043802
],
"SampleTime": "2022-10-24T19:09:07.327Z",
"PositionProperties": {
"name" : "device1"
},
"Accuracy": {
"Horizontal": 10
}
},
{
"DeviceId": "2",
"Position": [
-123.1230104928471, 49.27752402723152
],
"SampleTime": "2022-10-02T19:09:07.327Z"
},
{
"DeviceId": "3",
"Position": [
-123.12325592118916, 49.27340530543111
],
"SampleTime": "2022-10-02T19:09:07.327Z"
},
{
"DeviceId": "4",
"Position": [
-123.11958813096311, 49.27774641063121
],
"SampleTime": "2022-10-02T19:09:07.327Z"
},
{
"DeviceId": "5",
"Position": [
-123.1277418058896, 49.2765989015285
],
"SampleTime": "2022-10-02T19:09:07.327Z"
},
{
"DeviceId": "6",
"Position": [
-123.11964267059481, 49.274188155916534
],
"SampleTime": "2022-10-02T19:09:07.327Z"
}
]
}
- AWS CLI
-
AWS CLI
コマンドを使用して位置更新を送信するには
batch-update-device-position
コマンドを実行します。
次の例では、 を使用して AWS CLI ExampleDevice-1
と ExampleDevice-2
のデバイス位置の更新をトラッカー に投稿しますExampleTracker
。
aws location batch-update-device-position \
--tracker-name ExampleTracker \
--updates '[{"DeviceId":"ExampleDevice-1","Position":[-123.123,47.123],"SampleTime":"2021-11-30T21:47:25.149Z"},{"DeviceId":"ExampleDevice-2","Position":[-123.123,47.123],"SampleTime":"2021-11-30T21:47:25.149Z","Accuracy":{"Horizontal":10.30},"PositionProperties":{"field1":"value1","field2":"value2"}}]'
トラッカーからデバイスの位置履歴を取得する
Amazon Location トラッカーリソースは、追跡対象のすべてのデバイスの位置履歴を 30 日間保持します。トラッカーリソースから、関連するすべてのメタデータを含むデバイスの位置履歴を取得できます。次の例では AWS CLI、、、または Amazon Location APIsを使用します。
- API
-
Amazon Location API を使用してトラッカーからデバイスの位置履歴を取得するには
Amazon Location Trackers API の GetDevicePositionHistory
オペレーションを使用してください。
次の例では、API URI リクエストを使用して、 の ( を含む) からExampleTracker
始まる 19:05:07
というトラッカーExampleDevice
から のデバイス位置履歴を取得し、 の 19:20:07
( を除く) で終了します2020–10–02
。
POST /tracking/v0/trackers/ExampleTracker
/devices/ExampleDevice
/list-positions
Content-type: application/json
{
"StartTimeInclusive": "2020-10-02T19:05:07.327Z",
"EndTimeExclusive": "2020-10-02T19:20:07.327Z"
}
- AWS CLI
-
AWS CLI コマンドを使用してトラッカーからデバイスの位置履歴を取得するには
get-device-position-history
コマンドを実行します。
次の例では、 を使用して AWS CLI 、 の ( を含む) からExampleTracker
始まる 19:05:07
というトラッカーExampleDevice
から のデバイス位置履歴を取得し、 の 19:20:07
( を除く) で終了します2020–10–02
。
aws location \
get-device-position-history \
--device-id "ExampleDevice
" \
--start-time-inclusive "2020-10-02T19:05:07.327Z" \
--end-time-exclusive "2020-10-02T19:20:07.327Z" \
--tracker-name "ExampleTracker
"
デバイスの位置のリストを表示する
トラッカーのデバイス位置のリストは AWS CLI、、または Amazon Location APIsで表示できます。 ListDevicePositions ListDevicePositions API を呼び出すと、特定のトラッカーに関連付けられているすべてのデバイスの最新の位置のリストが返されます。デフォルトでは、この API は特定のトラッカーの最新のデバイス位置を結果ページごとに 100 件返します。特定の地域内のデバイスのみを返したい場合は、FilterGeometry
パラメータを使用して Bounding Polygon Query を作成します。これにより、 を呼び出すと ListDevicePositions、ポリゴン内のデバイスのみが返されます。
独自の AWS KMS カスタマーマネージドキーを使用してデータを暗号化する場合、バウンディングポリゴンクエリ機能はデフォルトで無効になります。これは、この機能を使用すると、デバイスの位置の表現が AWS KMS マネージドキーを使用して暗号化されないためです。ただし、デバイスの正確な位置は引き続き顧客管理キーを使用して暗号化されます。
Bounding Polygon Queries 機能の使用を選択することもできます。その場合は、トラッカーを作成または更新するときに KmsKeyEnableGeospatialQueries
パラメータを true に設定します。
- API
-
Amazon Location Trackers API の ListDevicePositions
オペレーションを使用してください。
以下の例は、オプションのパラメータ FilterGeometry
を使用して多角形エリア内のデバイス位置のリストを取得するための API リクエストです。この例では、Polygon
配列で定義されたエリア内に存在する 3 つのデバイス位置が返されます。
POST /tracking/v0/trackers/TrackerName
/list-positions HTTP/1.1
Content-type: application/json
{
"FilterGeometry": {
"Polygon": [
[
[
-123.12003339442259,
49.27425121147397
],
[
-123.1176984148229,
49.277063620879744
],
[
-123.12389509145294,
49.277954183760926
],
[
-123.12755921328647,
49.27554025235713
],
[
-123.12330236586217,
49.27211836076236
],
[
-123.12003339442259,
49.27425121147397
]
]
]
},
"MaxResults": 3,
"NextToken": "1234-5678-9012"
}
以下に、ListDevicePositions
のレスポンスの例を示します。
{
"Entries": [
{
"DeviceId": "1",
"SampleTime": "2022-10-24T19:09:07.327Z",
"Position": [
-123.12245146162303,
49.27521118043802
],
"Accuracy": {
"Horizontal": 10
},
"PositionProperties": {
"name": "device1"
}
},
{
"DeviceId": "3",
"SampleTime": "2022-10-02T19:09:07.327Z",
"Position": [
-123.12325592118916,
49.27340530543111
]
},
{
"DeviceId": "2",
"SampleTime": "2022-10-02T19:09:07.327Z",
"Position": [
-123.1230104928471,
49.27752402723152
]
}
],
"NextToken": "1234-5678-9012"
}
- CLI
-
list-trackers
コマンドを実行します。
次の例は、多角形エリア内のデバイスのリストを取得 AWS CLI するための です。
aws location list-device-positions TODO: add arguments add props for filter geo