翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT Core Device Location を使用してデバイスからの測定データをデコードし、サードパーティーのソルバーを使用してデバイスの位置を特定します。解決された位置は、地理座標と精度情報を含む GeoJSON ペイロードとして生成されます。デバイスの位置は、AWS IoT コンソール、AWS IoT Wireless API、または AWS CLI から解決できます。
デバイスの位置を解決する (コンソール)
デバイスの位置を解決するには (コンソール)
-
AWS IoT コンソールの [Device Location]
ページに移動します。 -
デバイスログまたは CloudWatch Logs からペイロード測定データを取得し、[ペイロードを介して位置を解決する] セクションに入力します。
以下のコードは、JSON ペイロードのサンプルを示しています。ペイロードには、セルラーと Wi-Fi の測定データが含まれています。ペイロードに他の種類の測定データが含まれている場合は、最も精度の高いソルバーが使用されます。詳細な説明とペイロードの例については、「位置ソルバーとデバイスペイロード」を参照してください。
注記
JSON ペイロードには、少なくとも 1 つのタイプの測定データが含まれている必要があります。
{ "Timestamp":
1664313161
, "Ip":{ "IpAddress":"54.240.198.35"
}, "WiFiAccessPoints": [{ "MacAddress":"A0:EC:F9:1E:32:C1"
, "Rss":-77
}], "CellTowers": { "Gsm": [{ "Mcc":262
, "Mnc":1
, "Lac":5126
, "GeranCid":16504
, "GsmLocalId": { "Bsic":6
, "Bcch":82
}, "GsmTimingAdvance":1
, "RxLevel":-110
, "GsmNmr": [{ "Bsic":7
, "Bcch":85
, "RxLevel":-100
, "GlobalIdentity": { "Lac":1
, "GeranCid":1
} }] }], "Wcdma": [{ "Mcc":262
, "Mnc":7
, "Lac":65535
, "UtranCid":14674663
, "WcdmaNmr": [{ "Uarfcndl":10786
, "UtranCid":14674663
, "Psc":149
}, { "Uarfcndl":10762
, "UtranCid":14674663
, "Psc":211
} ] }], "Lte": [{ "Mcc":262
, "Mnc":2
, "EutranCid":2898945
, "Rsrp":-50
, "Rsrq":-5
, "LteNmr": [{ "Earfcn":6300
, "Pci":237
, "Rsrp":-60
, "Rsrq":-6
, "EutranCid":2898945
}, { "Earfcn":6300
, "Pci":442
, "Rsrp":-70
, "Rsrq":-7
, "EutranCid":2898945
} ] }] } } -
位置情報を解決するには、[Resolve] (解決) を選択します。
位置情報は、タイプブロブのものであり、地理的データ構造のエンコードに使用される形式である GeoJSON 形式を使用するペイロードとして返されます。ペイロードには以下が含まれます。
-
緯度と経度の情報を含む WGS84 の地理座標。高度情報も含まれる場合があります。
-
レポートされる位置情報のタイプ (ポイントなど)。ポイント位置タイプは、位置を GeoJSON ポイント
としてエンコードされた WGS84 の緯度と経度として表します。 -
ソルバーによって推定された位置情報と実際のデバイスの位置との差を示す、水平および垂直の精度情報 (メートル単位)。
-
位置推定レスポンスの不確実性を示す信頼度レベル。デフォルト値は 0.68 です。これは、実際のデバイス位置が推定位置の不確実性半径内にある確率が 68% であることを示しています。
-
デバイスが位置している都市、州、国、および郵便番号。この情報は、IP リバースルックアップソルバーが使用されている場合にのみ報告されます。
-
位置が解決された日時に対応するタイムスタンプ情報。Unix タイムスタンプ形式を使用します。
以下のコードは、位置の解決によって返される GeoJSON ペイロードのサンプルを示しています。
注記
位置を解決しようとしたときに AWS IoT Core Device Location でエラーが報告された場合は、エラーをトラブルシューティングして位置を解決できます。詳細については、「位置の解決時のトラブルシューティング」を参照してください。
{ "coordinates": [ 13.376076698303223, 52.51823043823242 ], "type": "Point", "properties": { "verticalAccuracy": 45, "verticalConfidenceLevel": 0.68, "horizontalAccuracy": 303, "horizontalConfidenceLevel": 0.68, "country": "USA", "state": "CA", "city": "Sunnyvalue", "postalCode": "91234", "timestamp": "2022-11-18T12:23:58.189Z" } }
-
-
[リソースロケーション] セクションに移動し、AWS IoT Core Device Location によって報告された位置情報を確認します。他のアプリケーションや AWS のサービス で使用するために、ペイロードをコピーできます。例えば、場所 を使用して位置データを Amazon Location Service に送信できます。
デバイス位置の解決 (API)
AWS IoT Wireless API を使用してデバイスの位置を解決するには、GetPositionEstition API オペレーションまたは get-position-estimate CLI コマンドを使用します。ペイロード測定データを入力として指定し、API オペレーションを実行してデバイスの位置を解決します。
注記
GetPositionEstimate
API オペレーションにはデバイスや状態の情報は保存されず、過去の位置データを取得することもできません。1 回限りのオペレーションを実行して測定データを解決し、推定位置を生成します。位置情報を取得するには、この API オペレーションを実行するたびにペイロード情報を指定する必要があります。
次のコマンドは、この API オペレーションを使用して位置を解決する方法の例を説明しています。
注記
get-position-estimate
CLI コマンドを実行する場合、出力 JSON ファイルを最初の入力として指定する必要があります。この JSON ファイルには、CLI からの応答として取得した推定位置情報が GeoJSON 形式で格納されます。例えば、次のコマンドは位置情報を locationout.json
ファイルに保存します。
aws iotwireless get-position-estimate
locationout.json
\ --ip IpAddress=""54.240.198.35"
" \ --wi-fi-access-points \ MacAddress="A0:EC:F9:1E:32:C1
",Rss=-75
\ MacAddress="A0:EC:F9:15:72:5E
",Rss=-67
この例には、測定タイプとして Wi-Fi アクセスポイントと IP アドレスの両方が含まれています。AWS IoT CoreDevice Location は、Wi-Fi のソルバーと IP リバースルックアップソルバーのどちらかを選択し、精度の高いソルバーを選択します。
解決された位置は、地理的データ構造のエンコードに使用される形式である GeoJSON 形式を使用するペイロードとして返されます。その後、locationout.json
ファイルに保存されます。ペイロードには、WGS84 の緯度と経度の座標、精度と信頼度レベルの情報、位置データタイプ、および位置が解決されたタイムスタンプが含まれています。
{
"coordinates": [
13.37704086303711,
52.51865005493164
],
"type": "Point",
"properties": {
"verticalAccuracy": 707,
"verticalConfidenceLevel": 0.68,
"horizontalAccuracy": 389,
"horizontalConfidenceLevel": 0.68,
"country": "USA",
"state": "CA",
"city": "Sunnyvalue",
"postalCode": "91234",
"timestamp": "2022-11-18T14:03:57.391Z"
}
}
位置の解決時のトラブルシューティング
位置を解決しようとすると、次のエラーコードのいずれかが表示される場合があります。AWS IoT CoreGetPositionEstimate
API オペレーションの使用時に Device Location でエラーが発生したり、AWS IoT コンソールのエラーに対応する行番号を参照したりすることがあります。
-
400 エラー
このエラーは、デバイスペイロード JSON の形式が AWS IoT Core Device Location で検証できないことを示しています。このエラーは、次の理由で発生する可能性があります。
-
JSON 測定データの形式が正しくない。
-
ペイロードにタイムスタンプ情報のみが含まれている。
-
IP アドレスなどの測定データパラメータが無効である。
このエラーを解決するには、JSON が正しくフォーマットされ、1 つ以上の測定タイプのデータが入力として含まれているかどうかを確認してください。IP アドレスが無効な場合、有効な IP アドレスを指定してエラーを解決する方法については、「IP リバースルックアップソルバー」を参照してください。
-
-
403 エラー
このエラーは、API オペレーションを実行したり、AWS IoT コンソールを使用してデバイスの位置を取得したりするアクセス許可がないことを示しています。このエラーを解決するには、このアクションを実行するために必要なアクセス許可があることを確認してください。このエラーは、AWS Management Console セッションまたは AWS CLI セッショントークンの有効期限が切れている場合に発生する可能性があります。このエラーを解決するには、セッショントークンを更新して AWS CLI を使用するか、AWS Management Console からログアウトしてから認証情報を使用してログインします。
-
404 エラー
このエラーは、AWS IoT Core Device Location によって位置情報が見つからなかったか、解決されなかったことを示します。このエラーは、測定データ入力のデータが十分ではないなどの場合に発生する可能性があります。以下に例を示します。
-
MAC アドレスまたはセルラータワーの情報が不十分です。
-
この IP アドレスでは、位置を検索したり取得したりすることはできません。
-
GNSS ペイロードが不十分です。
このような場合のエラーを解決するには、測定データにデバイスの位置を特定するのに必要な情報が十分に含まれているかどうかを確認してください。
-
-
500 エラー
このエラーは、AWS IoT Core Device Location が位置を解決しようとしたときに、内部サーバー例外が発生したことを示しています。このエラーを修正するには、セッションを更新して、解決する測定データを送信し直してください。