这里Rest API:如何限制某个区域的建议结果?

时间:2016-02-23 19:29:51

标签: here-api

我需要这里的map API来自动完成地址。我正在尝试使用Place suggestion API,该API已记录在案:https://developer.here.com/api-explorer/rest/places-search/search-suggestion

然而API行为让我感到惊讶。我试图在华盛顿地区获得查询“20”(部分门牌号码)的建议:

curl -X GET -H "X-Map-Viewport: -125.0061,45.6674,-120.6775,48.7269" -H "Cache-Control: no-cache" "https://places.demo.api.here.com/places/v1/suggest?q=20&app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&size=5"

{
  "suggestions": [
    "205th Ave KP S, Lakebay, WA 98349, USA",
    "Mall 205",
    "204th Avenue KP S, Lakebay, WA 98349, USA",
    "202nd Avenue KP S, Lakebay, WA 98349, USA",
    "McMenamins"
  ]
}

这对我来说很好看。

但让我感到惊讶的是,当我开始查询“2021”时,它正在回复我在墨西哥的地址:

curl -X GET -H "X-Map-Viewport: -125.0061,45.6674,-120.6775,48.7269" -H "Cache-Control: no-cache" "https://places.demo.api.here.com/places/v1/suggest?q=2021&app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&size=10"

{
  "suggestions": [
    "2021 California",
    "20218, Aguascalientes, Mexico",
    "Taco Bell",
    "20219, Aguascalientes, Mexico",
    "2021 Restaurant",
    "20216, Aguascalientes, Mexico",
    "2021 Wireless",
    "20210, Aguascalientes, Mexico",
    "2021.Interactive, LLC",
    "20213, Peñas Blancas, Costa Rica"
  ]
}

如果在区域内找不到匹配项,而不是从边界框中获取结果,我宁愿得不到任何结果。

我的问题:我如何实际限制搜索区域?另一个问题是如何过滤掉不是地址的结果?

2 个答案:

答案 0 :(得分:0)

您是否可以使用地理编码器API?这是我用于我的"自动完成建议"输入字段,您可以将建议结果限制到边界框并指定确切的状态。它还会告诉您每个结果的位置类型以及更详细的信息。

例如:

https://geocoder.api.here.com/6.2/geocode.json?mapview=16.6,-170.2;76.0,-45.4&state=wa&searchtext=2021&gen=9&app_id=APP_ID&app_code=APP_CODE&size=10

我没有使用过地点api,但听起来地理编码器也符合你的要求。

答案 1 :(得分:0)

似乎尚无法将Places Suggest API结果限制为给定国家/地区。您可以尝试使用显式位置上下文(?in=[your-country-polygon]),但之后您不能使用隐式位置上下文(例如X-Map-Viewport标题)来关注较小的边界框 - 您将获得遍布全国的结果

如果您可以在没有“地点”的情况下居住,并且只需要街道,则可以使用地理编码API - 您可以根据国家/地区软键或硬地过滤结果。

地方和地理编码似乎是两个截然不同的软件,两个API之间几乎没有凝聚力