地理编码 - Amazon Location Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

地理编码

地理編碼是將文字 (例如地址、地區、商家名稱或興趣點) 轉換為一組地理座標的程序。您可以使用地點索引資源來提交地理編碼請求,並合併從地理編碼擷取的資料,以便在 Web 或行動應用程式的地圖上顯示資料。

本節將引導您如何傳送簡單的地理編碼要求,以及如何使用選用規格傳送地理編碼請求。

地理编码

您可以使用將地址轉換為一組坐標的SearchPlaceIndexForText操作提交一個簡單的地理編碼請求。簡單要求包含下列必要參數:

  • Text— 要轉換為一組座標的地址、名稱、城市或地區。例如,字符串Any Town

若要指定每頁的結果數目上限,請使用下列選用參數:

  • MaxResults— 限制查詢回應時傳回的結果數目上限。

您可以使用AWS CLI或亞馬遜位置 API。

API

下列範例是搜尋地點索引資源的SearchPlaceIndexForText請求 ExamplePlaceIndex,以取得名為「任何城鎮」的地址、名稱、城市或地區。

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Any Town", "MaxResults": 10 }
AWS CLI

下列範例是用來搜尋地點索引資源的指search-place-index-for-textExamplePlaceIndex,以尋找名為 Any T own 的地址、名稱、城市或區域。

aws location \ search-place-index-for-text \ --index-name ExamplePlaceIndex \ --text "Any Town" \ --max-results 10

位置附近的地理編碼

地理編碼時,您可以使用以下可選參數在給定位置附近進行地理編碼:

  • BiasPosition— 您想要在附近搜索的位置。這會搜尋最接近指定位置的結果,藉此縮小搜尋範圍。定義為[longitude, latitude]

下列範例是在位置 [-123.4567, 45.6789] 附近稱為「任何城鎮」的地址、名稱、城市或地區搜尋地點索引資源的SearchPlaceIndexForText請求。

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Any Town", "BiasPosition": [-123.4567,45.6789] }

邊界框內的地理編碼

您可以使用下列可選參數,在邊界框內進行地理編碼,將結果縮小為指定邊界內的座標:

  • FilterBBox— 您指定用來將結果篩選為方塊邊界內座標的邊界方塊。定義為[LongitudeSW, LatitudeSW, LongitudeNE, LatitudeNE]

    注意

    請求不能同時包含FilterBBoxBiasPosition參數。在要求中指定這兩個參數會傳回ValidationException錯誤。

下列範例是SearchPlaceIndexForText要求在邊界方塊內搜尋稱為「任何城鎮」的地址、名稱、城市或區域。邊界方框如下所示:

  • 西南角的經度是 -124.1450

  • 西南角落的緯度為 41.7045

  • 東北角的經度為 -124.1387

  • 東北角的緯度為 41.7096

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Any Town", "FilterBBox": [ -124.1450,41.7045, -124.1387,41.7096 ] }

一個國家內的地理編碼

您可以使用下列選用參數,在指定的一或多個國家/地區內進行地理編碼:

  • FilterCountries— 您要在其中進行地理編碼的國家或地區。您可以使用 ISO 3166 三個字母的國家/地區代碼,在一個請求中定義多達 100 個國家/地區。例如,用AUS於澳大利亞。

下列範例是SearchPlaceIndexForText要求搜尋位址、名稱、城市或地區 (位於德國和法國的 A ny Town)。

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Any Town", "FilterCountries": ["DEU","FRA"] }

偏好語言的地理編碼

您可以使用選用參數來設定搜尋結果的語言偏好設Language定。例如,100 Main St, Any Town, USA依預設,100 Main St, Anytown, USA可能會傳回搜尋。但是,如果您選擇frLanguage,則結果可能會100 Rue Principale, Any Town, États-Unis返回。

  • Language— 用於轉譯查詢結果的語言代碼。此值必須是有效的 BCP 47 語言代碼。例如,en對於英文。

注意

如果Language未指定,或結果不支援指定的語言,則會使用該結果的合作夥伴預設語言。

下列範例是SearchPlaceIndexforText要求以慣Any Town用語言指定為來搜尋呼叫的地點de

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Any Town", "Language": "de" }

回應範例

以下是從 Amazon 位置位置 API 呼叫SearchPlaceIndexForText作業時的範例回應。結果包括相關的地方和要求摘要。根據選擇 Esri 或 HERE 作為合作夥伴,會顯示兩個回應。

Example request
POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Amazon", "MaxResults": 1, "FilterCountries": ["USA"], "BiasPosition": [-112.10, 46.32] }
Example response (Esri)
{ "Results": [ { "Place": { "Country": "USA", "Geometry": { "Point": [ -112.10667999999998, 46.319090000000074 ] }, "Interpolated": false, "Label": "Amazon, MT, USA", "Municipality": "Amazon", "Region": "Montana", "SubRegion": "Jefferson County" }, "Distance": 523.4619749879726, "Relevance": 1 } ], "Summary": { "BiasPosition": [ -112.1, 46.32 ], "DataSource": "Esri", "FilterCountries": [ "USA" ], "MaxResults": 1, "ResultBBox": [ -112.10667999999998, 46.319090000000074, -112.10667999999998, 46.319090000000074 ], "Text": "Amazon" } }
Example response (HERE)
{ "Summary": { "Text": "Amazon", "BiasPosition": [ -112.1, 46.32 ], "FilterCountries": [ "USA" ], "MaxResults": 1, "ResultBBox": [ -112.10668, 46.31909, -112.10668, 46.31909 ], "DataSource": "Here" }, "Results": [ { "Place": { "Label": "Amazon, Jefferson City, MT, United States", "Geometry": { "Point": [ -112.10668, 46.31909 ] }, "Neighborhood": "Amazon", "Municipality": "Jefferson City", "SubRegion": "Jefferson", "Region": "Montana", "Country": "USA", "Interpolated": false, "TimeZone": { "Name": "America/Denver", "Offset": -25200 } }, "PlaceId": "AQAAAIAADsn2T3KdrRWeaXLeVEyjNx_JfeTsMB0NVCEAnAZoJ-o3nqdlJZAdgcT2oWi1w9pS4wXXOk3O1vsKlGsPyHjV4EJxsu289i3hVO_BUPgP7SFoWAi8BW2v7LvAjQ5NfUPy7a1v9ajT3feIqcUZszWSTqKbJHFYvQqW7wdqhpQq3Wy-et39ZQDWSPLZUzgcjN-6VD2gyKkH0Po7gSm8YSJNSQ", "Distance": 523.4619749905755 } ] }