我们的网站上有一个嵌入式搜索栏,它使用Google Maps API提供建议和结果。当用户搜索"纽约"并特别点击建议,表明他们正在搜索纽约州,这个api呼叫是:
当他们只是输入"纽约"并点击回车,或选择表示"纽约,纽约"的建议,进行此API呼叫:
问题是返回的JSON在两者之间是相同的,但回调标题除外:
{
"results" : [
{
"address_components" : [
{
"long_name" : "New York",
"short_name" : "New York",
"types" : [ "locality", "political" ]
},
{
"long_name" : "New York",
"short_name" : "NY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "New York, NY, USA",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 40.9175771,
"lng" : -73.70027209999999
},
"southwest" : {
"lat" : 40.4773991,
"lng" : -74.25908989999999
}
},
"location" : {
"lat" : 40.7127837,
"lng" : -74.0059413
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 40.9152555,
"lng" : -73.70027209999999
},
"southwest" : {
"lat" : 40.4960439,
"lng" : -74.25573489999999
}
}
},
"place_id" : "ChIJOwg_06VPwokRYv534QaPC8g",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
这会导致向我们的用户提供不正确的搜索结果。具体来说,我们关闭了"types"
字段。由于两个文件都指明用户搜索了一个地点'我们总是返回纽约市而不是纽约州的结果。
这是Google Maps API中的错误吗?我们是否需要指定一些标志来强制更严格地解释我们发送的内容?其他想法?
请注意,如果您对面向www.google.com/maps的用户执行此搜索,您将获得NY State而不是NYC。我不太了解该页面与API的不同之处,以了解其中的内容。