这里自动完成API:严重不准确的结果,忽略门牌号

时间:2018-11-10 01:41:06

标签: autocomplete here-api

使用此处的自动完成API会获得非常不准确的结果。

示例: 在美国,搜索“纬度经度/纬度设置为”的“ 2215 E 2”,距离该位置仅几步之遥:

http://autocomplete.geocoder.api.here.com/6.2/suggest.json?query=2215+e+2&maxresults=50&country=USA&language=en&prox=40.593791,-73.961245&resultType=houseNumber

返回的结果甚至没有门牌号“ 2215”,或者甚至没有至少部分字符串匹配“ 2215 E 2”-以下是一些错误返回结果的示例:

"United States, NY, Brooklyn, 2002 E 2nd St"
"United States, NY, Brooklyn, 2003 E 21st St"
"United States, NY, Brooklyn, 2001 E 22nd St"
"United States, NY, Brooklyn, 2001 E 13th St"
"United States, NY, Brooklyn, 2002 E 8th St"
"United States, NY, Brooklyn, 2001 E 19th St"

在许多情况下,看起来像HERE API完全忽略了门牌号码。但是由于某些原因,使用HERE移动应用搜索相同内容时,我得到了正确的结果。因此,必须使用API​​文档中未列出的其他内容。

逻辑上,API应该首先返回完全匹配的字符串,然后返回部分/模糊结果。

查询字符串中是否还需要使用其他搜索运算符?

如何像在HERE应用中那样在部分地址上获得精确的字符串匹配?

1 个答案:

答案 0 :(得分:0)

即使是单个字母,自动填充API也会尝试获取匹配项。由于您已在请求中提供了代理参数,因此您明确地告诉api,使其更接近结果对您来说更重要。这就是为什么返回结果根据距您的代理人的距离排序的原因。您可以看到响应中显示的距离。删除代理将根据最相关的匹配对结果进行排序。

代理-一种空间过滤器。

将焦点集中在由单个地理坐标对表示的地理区域以及半径(以米为单位)上,因此该区域内的结果比该区域外的结果更重要。

更新:尝试将mapview用于您的用例以获得所需的结果。在developer.here.com/documentation/geocoder-autocomplete/topics/using-autocomplete.html中也建议使用。

http://autocomplete.geocoder.api.here.com/6.2/suggest.json?query=2215+e+2&maxresults=50&country=USA&language=en&mapview=40.593791,-73.961245,;45.2173875,-73.961245,&resultType=houseNumber&beginHighlight=%3Cb%3E&endHighlight=%3C/b%3E