地理编码 - Amazon Location Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

地理编码

地理编码是一个将文本(例如地址、区域、公司名称或兴趣点)转换为一组地理坐标的过程。您可以使用地点索引资源提交地理编码请求,并合并从地理编码中检索到的数据,以便在地图上显示适用于 Web 或移动应用程序的数据。

本部分将指导您如何发送简单的地理编码请求,以及如何发送具有可选规格的地理编码请求。

地理编码

您可以使用将地址转换为一组坐标的 SearchPlaceIndexForText 操作提交简单的地理编码请求。简单请求包含以下必需参数:

  • Text——要转换为一组坐标的地址、名称、城市或地区。例如:字符串 Any Town

要指定每页的最大结果数,请使用以下可选参数:

  • MaxResults——限制查询响应中返回的最大结果数。

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

API

以下示例SearchPlaceIndexForText请求在地点索引资源中搜索名为 ExamplePlaceIndexAny T own 的地址、名称、城市或区域。

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

以下示例是一个在地点索引资源中搜索名为 An ExamplePlaceIndexy T own 的地址、名称、城市或地区的search-place-index-for-text命令。

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

在位置附近进行地理编码

进行地理编码时,您可以使用以下可选参数在给定位置附近进行地理编码:

  • BiasPosition——您要在附近搜索的位置。这会通过搜索最接近给定位置的结果来缩小搜索范围。定义为 [longitude, latitude]

以下示例是一个 SearchPlaceIndexForText 请求,在地点索引资源中搜索位置 [-123.4567,45.6789] 附近名为 Any Town 的地址、名称、城市或地区。

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 ] }

在一个国家内进行地理编码

您可以使用以下可选参数在您指定的一个或多个国家/地区内进行地理编码:

  • FilterCountries——您要在其中进行地理编码的国家或地区。使用 ISO 3166 三个字母的国家/地区代码,您可以在一个请求中定义多达 100 个国家/地区。例如,AUS 用于澳大利亚。

以下示例是一个 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"] }

有关筛选类别的详细信息,请参阅 放置类别和筛选结果

使用首选语言进行地理编码

您可以使用可选 Language 参数为搜索结果设置语言首选项。例如,默认情况下,搜索 100 Main St, Anytown, USA 可能会返回 100 Main St, Any Town, USA。但是,如果您选择 fr 作为 Language,则结果可能会改为返回 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 Location 位数 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 } ] }