使用此处的自动完成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应用中那样在部分地址上获得精确的字符串匹配?
答案 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