本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
了解如何在 Amazon Location Service 中搜索地点
Amazon Location Service 的一项关键功能是能够搜索地理位置信息。Amazon Location 通过地点索引资源提供此功能。
注意
有关如何在实践中使用地点索引资源进行搜索的信息,请参阅 使用 Amazon Location 搜索地点和地理位置数据。
您可以使用地点索引APIs来搜索:
-
兴趣点,例如餐厅和地标。按名称和可选位置进行搜索,并获得按相关性排序的选项列表。
-
街道地址,接收该地址的纬度和经度。这称为地理编码。
-
纬度和经度位置,接收相关的街道地址或其他有关该位置的信息。这称为反向地理编码。
-
部分或拼写错误的自由格式文本查询,通常是在用户键入时进行的。这称为自动完成、自动建议或模糊匹配。
地点索引包括要使用哪个数据提供程序进行搜索。
注意
地图数据和其他地理位置信息(包括确切位置)可能因数据提供程序而异。最佳做法是,为您的地点索引、地图和其他 Amazon Location 资源使用相同的数据提供程序。例如,如果您的地点索引返回的地点与地图资源提供的相同地点的位置不匹配,则可以在地图上看似错误的位置放置标记。
下面显示如何创建和使用地点索引资源:
-
首先,您可以通过选择数据提供商在 AWS 账户中创建地点索引资源。
-
然后,您可以选择并安装与您的开发环境和应用程序相匹配的。SDK有关可用选项的更多信息,请参阅有关访问 Amazon Location 的主题。
-
开始使用 Amazon 定位地点APIs。有关更多信息,请参阅有关使用地点搜索的主题。
-
然后,您可以使用诸如Amazon CloudWatch 和之类的服务来集成监控 AWS CloudTrail。有关更多信息,请参阅、使用亚马逊监控 Amazon Location Service CloudWatch和使用记录和监控 AWS CloudTrail。
地理编码概念
Amazon Location 地点索引提供了一个名为 SearchPlaceIndexForText
的操作,允许您指定要搜索的文本。例如,您可以搜索:
-
地点——搜索
Paris
可能会返回该城市在法国的位置。 -
企业——搜索
coffee shop
可能会返回咖啡店的列表,包括它们的名称和地点。您还可以指定要搜索的位置或要在其中搜索的边界框,以使结果更具相关性。在这种情况下,提供华盛顿州西雅图市中心的一个位置,将返回该区域的咖啡店。 -
地址——搜索
1600 Pennsylvania Ave, Washington D.C.
可能会返回美国白宫的位置(位于该地址)。
以这种方式搜索文本通常称为地理编码,包括为地址或地点查找地理位置。
Amazon Location Service 还提供名为 SearchPlaceIndexForPosition
的反向地理编码操作。这会获取一个地理位置并返回该位置的地址、公司或其他有关该位置的信息。
搜索结果
当您在 Amazon Location Service 中成功提出搜索请求时,系统会返回一个或多个结果。每个结果都包含一个标签,即结果的名称或描述。例如,搜索 coffee shop
可能会返回带有标签的结果 Hometown Cafe
,告诉您找到了一家名为“Hometown Cafe”的咖啡店。搜索结果通常还会包括结构化地址(包括地址号、单位、街道和邮政编码等属性)。根据数据提供程序的不同,它还将包括其他元数据,例如国家和时区。
要搜索企业名称或类别(例如 coffee
shop
),您可能需要在地图上显示所有返回的结果。对于地址搜索,您可能只想自动使用第一个结果。有关相关性的信息,请参阅下一个主题。
多种结果和相关性
通过文字搜索时,Amazon Location Service 通常会找到多个结果。例如,搜索 Paris
可能会返回法国的城市,但也会返回德克萨斯州的城市。结果按相关性排序,由数据提供程序确定。
注意
所有提供程序按相关性顺序返回结果。如果您选择 Esri 或 Grab 作为数据提供程序,则结果将包含一个相关性值,您可以使用该值来了解单个请求结果之间的相对相关性。
指定其他信息,例如国家/地区名称或要搜索的地点,可以更改结果顺序,减少结果数量,甚至更改返回的结果集。例如,在德克萨斯州搜索某个地点的 Paris
,Paris,
Texas
更有可能作为第一个结果返回,而不是 Paris,
France
。
在交互式应用程序中,您可以使用相关性来帮助决定是接受排名靠前的结果,还是要求用户在多个返回的结果之间进行区分。如果第一个结果具有很高的相关性,则可以接受它作为正确答案。如果有多个高相关性结果或没有高相关性结果,则可能需要列出这些结果并让用户选择最佳结果。
地址结果
您可以使用相同的 SearchPlaceIndexForText
操作通过 Amazon Location Service 搜索地址。您提供的信息越多,返回的地址与给定地址匹配的可能性就越大。例如,123 Main St
不太可能找到正确的结果 123 Main St, Anytown, California, 90210
。
地址具有多个属性,例如门牌号、街道、城市、地区和邮政编码等。这些属性用于在地点索引中查找与尽可能多方面匹配的地址。找到的属性越多,匹配项的相关性就越高,返回匹配项的可能性也就越大。
注意
地址结果的相关性取决于结果与输入的匹配程度。这可能是匹配的属性的数量,也可以是结果与输入的匹配程度。例如,当数据中找到 Main St
时,输入 123 Main
St
的相关性会比只有 Maine St
作为结果时更高。Maine St
仍然会被返回,但可能具有较低的相关性值。
搜索结果包括完整地址 (123 Main St,
Anytown, California, 90210
) 的标签,还包括返回地址的各个结构化属性。这很有用,因为例如,您可以使用它来填充数据库中的地址字段,或者检查结果并找到找到的位置的城市、地区或邮政编码。
插值
地点索引数据中的地址包括精确的地址匹配项。例如,假设有一条街道 9th street
,一个街区有 2 栋房屋,220
和 240
,如下图所示。
数据提供程序使用这两个已知地址创建地理位置数据。您可以搜索这两个地址,它们就会被找到。在数据提供程序创建地图数据之后,假设在前两个地址之间添加了一座新房子。这所新房子被赋予了地址 230
。如果您搜索 230 S 9th St
,数据提供程序仍会找到结果。它不会使用已知地址,而是在已知地址之间进行插值,然后根据这些地址估计新地址的位置。在这种情况下,它可以假设 230 介于 220 和 240 之间(并且在街道的同一边),并据此返回一个大致的位置。
注意
数据提供程序会定期使用新地址更新其地理位置数据。在这种情况下,230 S 9th St
会被添加到数据提供程序数据中,但通常会有一段时间新地址已创建但尚未添加到数据中。
在这种情况下,数据提供程序无法分辨出世界上是否存在新地址,因为它尚未出现在数据中,但可以从其所拥有的信息中提供最佳答案。此结果称为插值,可由数据提供程序在结果中返回。如果 interpolated
返回 false
,则为已知地址。如果返回 true
,则为近似地址。如果未返回,则数据提供程序不会提供有关结果是否来自插值的信息。
重要
对于根本不存在的地址,数据提供程序还可能返回插值结果。例如,在本例中,如果您输入 232 S 9th
St
,提供程序将找到这个不存在的地址,并返回一个接近 230 但位于 240 一侧的位置。插值地址对于将您带到正确位置很有用,但请记住,它们不是已知地址。
存储地理编码结果
创建地点索引资源时,必须指定数据存储选项(IntendedUse
在中调用API)。可以将其设置为一次性使用或存储结果。这是在询问您对结果的预期用途。如果要存储结果(即使是出于缓存目的),则必须选择存储选项,而不是一次性使用选项。
注意
当您选择已存储选项(标记为 “是,结果将存储在控制台中,或者在storage
中选择” CreatePlaceIndex
API)时,Amazon Location Service 不会为您存储结果。这表明您计划存储结果。
在考虑如何使用您对 Amazon Location Service 的查询结果时,您应始终了解适用的AWS 服务条款
地点术语
- 放置索引资源
-
允许您选择支持搜索查询的数据源。例如,您可以搜索兴趣点、地址或坐标。当向地点索引资源发送搜索查询时,将使用该资源的配置数据源来完成查询。
- 地理编码
-
地理编码是获取文本输入、在地点索引中搜索文本并返回带有位置的结果的过程。
- 反向地理编码
-
反向地理编码是从地点索引中获取位置并返回有关该位置的信息的过程,例如该位置的地址、城市或商家。
- 相关性
-
相关性是指结果与输入的匹配程度。它不是衡量正确性的标准。
- 插值
-
插值法是使用已知地址位置作为指导点来查找未知地址的过程。
- ISO3166 个国家/地区代码
-
Amazon Location Service Places 使用国际标准化组织 (ISO) 3166
个国家/地区代码来指代国家或地区。 要查找特定国家或地区的代码,请使用ISO在线浏览平台
。