使用 Amazon Location 進行地理編碼 - Amazon Location Service

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

使用 Amazon Location 進行地理編碼

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

本節會引導您了解如何傳送簡單的地理編碼請求,以及如何傳送具有選用規格的地理編碼請求。

地理編碼

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

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

若要指定每頁結果的最大數量,請使用下列選用參數:

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

您可以使用 AWS CLI 或 Amazon Location APIs。

API

下列範例是搜尋位置索引資源的SearchPlaceIndexForText請求,ExamplePlaceIndex,針對名為 的地址、名稱、城市或區域 Any Town.

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

下列範例是搜尋位置索引資源的search-place-index-for-text命令,ExamplePlaceIndex,針對名為 的地址、名稱、城市或區域 Any Town.

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

位置附近的地理編碼

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

  • BiasPosition – 您要搜尋附近的位置。這透過搜尋最接近指定位置的結果來縮小搜尋範圍。定義為 [longitude, latitude]

下列範例是搜尋名為 的地址、名稱、城市或區域的位置索引資源的SearchPlaceIndexForText請求 Any Town 靠近位置 【-123.4567,45.6789].

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的要求,稱為 Any Town。 邊界方塊如下:

  • 西南角的經度為 -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 ] }

國家/地區內的地理編碼

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

下列範例是搜尋名為 的地址、名稱、城市或區域的SearchPlaceIndexForText請求 Any Town 在德國和法國。

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

依類別篩選

您可以使用下列選用參數,篩選在地理編碼請求中傳回的類別:

  • FilterCategories – 您要在查詢中傳回的結果類別。您可以在一個請求中指定最多 5 個類別。您可以在類別區段中找到 Amazon Location Service 類別的清單。例如,您可以指定Hotel在查詢中指定僅傳回的飯店。

下列範例是搜尋稱為 的咖啡店的SearchPlaceIndexForText請求 Hometown Coffee 在美國。

POST /places/v0/indexes/ExamplePlaceIndex/search/text Content-type: application/json { "Text": "Hometown Coffee", "FilterCategories": ["Coffee Shop"], "FilterCountries": ["USA"] }

如需在類別上篩選的詳細資訊,請參閱 使用 Amazon Location 放置類別和篩選結果

偏好語言的地理編碼

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

  • Language – 用來呈現查詢結果的語言代碼。值必須是有效的 BCP 47 語言代碼。例如,en針對英文。

注意

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

下列範例是搜尋Any Town使用指定為 的偏好語言所呼叫的位置的SearchPlaceIndexforText請求de

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

回應範例

當您從 Amazon Location Places 呼叫 SearchPlaceIndexForText操作時,以下是回應範例APIs。結果包含相關位置和請求摘要 。根據選取 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 } ] }