2016-02-23 37 views
2

我需要在這裏映射API來自動完成地址。我試圖使用地方建議API,這是記錄:https://developer.here.com/api-explorer/rest/places-search/search-suggestionHere Rest API:如何限制某個區域的建議結果?

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

這對我來說看起來很好。

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

我寧願讓沒有結果,如果它不能在比獲得結果的區域找到匹配:

但是當我開始查詢「2021」,它返回我的地址在墨西哥有什麼讓我驚訝的是走出邊界框。

我的問題:我該如何限制搜索範圍?另一個問題是如何過濾掉不是地址的結果?

+0

https://developer.here.com/rest-apis/documentation/places/topics/ location-contexts.html已爲您準備好了 – Onur

+0

我已經通過在示例中將「in」設置爲查詢參數並將「X-Map-Viewport」設置爲標題,嘗試了顯式位置上下文和隱式位置上下文。當我要求華盛頓地區時,這兩個請求都會返回墨西哥地址。 – Bunnyc1986

回答

0

看來現在還不可能限制地點將API結果提供給指定的國家。您可以嘗試使用明確的位置上下文(?in=[your-country-polygon]),但不能使用隱式位置上下文(例如X-Map-Viewport標題)專注於較小的邊界框 - 您會得到遍佈全國的結果。

如果您可以在沒有「地點」的情況下生活,只需要街道,您可以使用地理編碼API--使用該地理編碼API您可以按國家軟或硬篩選結果。

地方和地理編碼似乎是兩個非常不同的軟件作品,很少有兩個API之間沒有凝聚力

0

你能夠使用geocoder 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,但它聽起來像是地理編碼器也將滿足您的要求。

相關問題