使用建議和篩選區域或國家/地區的能力 - Amazon Location Service

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

使用建議和篩選區域或國家/地區的能力

建議 API 可讓您完成查詢結果的位置或類別。結果會針對最不可能相符的項目進行排序。此外,您可以進一步篩選特定區域或國家的結果。

潛在的使用案例

  • 篩選結果:執行搜尋時,您可以依國家/地區或僅依業務營運所在的區域進行篩選。

範例

依國家/地區新增篩選條件可確保您只會收到最多的釋放結果。為此使用 Filter.IncludeCountries。

Sample request
{ "QueryText": "hote", "BiasPosition": [ 2.2982750966095398, 48.856078089325294 ], "Filter": { "IncludeCountries": [ "FRA" ] }, "AdditionalFeatures": [ "Core" ] }
Sample response
{ "ResultItems": [ { "Title": "Hôtel de Matignon (Hôtel Matignon)", "SuggestResultItemType": "Place", "Place": { "PlaceId": "Redacted", "PlaceType": "PointOfInterest", "Address": { "Label": "Hôtel de Matignon, 57 Rue de Varenne, 75007 Paris, France", "Country": { "Code2": "FR", "Code3": "FRA", "Name": "France" }, "Region": { "Code": "IDF", "Name": "Île-de-France" }, "SubRegion": { "Name": "Paris" }, "Locality": "Paris", "District": "7e Arrondissement", "PostalCode": "75007", "Street": "Rue de Varenne", "StreetComponents": [ { "BaseName": "Varenne", "Type": "Rue de", "TypePlacement": "BeforeBaseName", "TypeSeparator": " ", "Language": "fr" } ], "AddressNumber": "57" }, "Position": [ 2.32072, 48.85471 ], "Distance": 1650, "Categories": [ { "Id": "tourist_attraction", "Name": "Tourist Attraction", "LocalizedName": "Attraction touristique", "Primary": true }, { "Id": "landmark-attraction", "Name": "Landmark-Attraction", "LocalizedName": "Lieu d'intérêt/Attraction", "Primary": false }, { "Id": "historical_monument", "Name": "Historical Monument", "LocalizedName": "Monument historique", "Primary": false }, { "Id": "residential_area-building", "Name": "Residential Area-Building", "LocalizedName": "Bâtiment résidentiel", "Primary": false } ] }, "Highlights": { "Title": [ { "StartIndex": 0, "EndIndex": 4, "Value": "Hôt" }, { "StartIndex": 19, "EndIndex": 23, "Value": "(Hô" } ], "Address": { "Label": [ { "StartIndex": 0, "EndIndex": 4, "Value": "Hôt" } ] } } }, ... { "Title": "Hotel", "SuggestResultItemType": "Query", "Query": { "QueryId": "Redacted", "QueryType": "Category" }, "Highlights": { "Title": [ { "StartIndex": 0, "EndIndex": 4, "Value": "Hote" } ] } }, ... ], "QueryRefinements": [] }
cURL
curl --request POST \ --url 'https://places.geo.eu-central-1.amazonaws.com/v2/suggest?key=Your_Key' \ --header 'Content-Type: application/json' \ --data '{ "QueryText": "hote", "BiasPosition": [ 2.2982750966095398, 48.856078089325294 ], "Filter": { "IncludeCountries": [ "FRA" ] }, "AdditionalFeatures": [ "Core" ] }'
AWS CLI
aws geo-places suggest --key ${YourKey} \ --query-text "hote" \ --bias-position 2.2982750966095398 48.856078089325294 \ --filter '{"IncludeCountries": ["FRA"]}' \ --additional-features "Core"

為搜尋新增filter-by-region選項只會將結果限制為符合所提供區域內的結果。這用於將搜尋範圍限制在與您的業務相關的區域。下列範例顯示搜尋波士頓區域附近的Marriott飯店時拼錯,其中包含一些飯店結果和後續查詢。

Sample request
{ "QueryText": "Mariot", "Filter": { "IncludeCountries": [ "USA" ], "BoundingBox": [ -71.15693983012913,42.261623506672635, -70.97249727163558,42.37584075627763 ] }, "AdditionalFeatures": [ "Core" ] }
Sample response
{ "ResultItems": [ { "Title": "Boston Marriott Copley Place", "SuggestResultItemType": "Place", "Place": { "PlaceId": "Redacted", "PlaceType": "PointOfInterest", "Address": { "Label": "Boston Marriott Copley Place, 110 Huntington Ave, Boston, MA 02116, United States", "Country": { "Code2": "US", "Code3": "USA", "Name": "United States" }, "Region": { "Code": "MA", "Name": "Massachusetts" }, "SubRegion": { "Name": "Suffolk" }, "Locality": "Boston", "District": "Back Bay", "PostalCode": "02116", "Street": "Huntington Ave", "StreetComponents": [ { "BaseName": "Huntington", "Type": "Ave", "TypePlacement": "AfterBaseName", "TypeSeparator": " ", "Language": "en" } ], "AddressNumber": "110" }, "Position": [ -71.07769, 42.34726 ], "Distance": 3347, "Categories": [ { "Id": "hotel", "Name": "Hotel", "LocalizedName": "Hotel", "Primary": true } ], "BusinessChains": [ { "Name": "Marriott", "Id": "Marriott" } ], "AccessPoints": [ { "Position": [ -71.07922, 42.34665 ] } ] }, "Highlights": { "Title": [ { "StartIndex": 7, "EndIndex": 14, "Value": "Marriot" } ], "Address": { "Label": [ { "StartIndex": 7, "EndIndex": 14, "Value": "Marriot" } ] } } }, ... { "Title": "Marriott", "SuggestResultItemType": "Query", "Query": { "QueryId": "Redacted", "QueryType": "BusinessChain" }, "Highlights": { "Title": [ { "StartIndex": 0, "EndIndex": 8, "Value": "Marriott" } ] } }, ... ], "QueryRefinements": [] }
cURL
curl --request POST \ --url 'https://places.geo.eu-central-1.amazonaws.com/v2/suggest?key=Your_Key' \ --header 'Content-Type: application/json' \ --data '{ "QueryText": "Mariot", "Filter": { "IncludeCountries": [ "USA" ], "BoundingBox": [ -71.15693983012913,42.261623506672635, -70.97249727163558,42.37584075627763 ] }, "AdditionalFeatures": [ "Core" ] }'
AWS CLI
aws geo-places suggest --key ${YourKey} \ --query-text "hote" \ --filter '{"IncludeCountries": ["FRA"], "BoundingBox": [ -71.15693983012913,42.261623506672635, -70.97249727163558,42.37584075627763]}' \ --additional-features "Core"

開發人員秘訣

使用Title回應欄位顯示搜尋結果,為使用者提供簡潔、可辨識的項目。對於可能看起來相似的結果,請使用 Place.Address.Label 欄位來顯示其他地址詳細資訊,以協助使用者區分它們。如需詳細資訊,請參閱如何協助使用者在類似結果之間模糊不清