我使用谷歌地理编码API实现自定义地图内自定义搜索位置。 我这样做了一个请求:
http://maps.googleapis.com/maps/api/geocode/json?address=frankfurt&components=country[de]
我只用一个结果回复了这个回复:
{
results: [
{
address_components: [
{
long_name: "Frankfurt am Main",
short_name: "Frankfurt am Main",
types: [
"locality",
"political"
]
},
{
long_name: "Darmstadt",
short_name: "DA",
types: [
"administrative_area_level_2",
"political"
]
},
{
long_name: "Hessen",
short_name: "HE",
types: [
"administrative_area_level_1",
"political"
]
},
{
long_name: "Deutschland",
short_name: "DE",
types: [
"country",
"political"
]
}
],
formatted_address: "Frankfurt am Main, Deutschland",
geometry: {
bounds: {
northeast: {
lat: 50.2272095,
lng: 8.8003977
},
southwest: {
lat: 50.0152145,
lng: 8.4727299
}
},
location: {
lat: 50.1109221,
lng: 8.6821267
},
location_type: "APPROXIMATE",
viewport: {
northeast: {
lat: 50.2272095,
lng: 8.8003977
},
southwest: {
lat: 50.0152145,
lng: 8.4727299
}
}
},
place_id: "ChIJxZZwR28JvUcRAMawKVBDIgQ",
types: [
"locality",
"political"
]
}
],
status: "OK"
}
问题是,答案应该包含德国存在的所有Frankfurts。 (法兰克福,主要+法兰克福,奥得河)。但它只是回应主要的法兰克福。同样的事情发生在其他地名上,理论上应至少存在两次。但谷歌只显示一个。可能是最相关的一个。
有没有办法修改它?或者更好地使用其他地理编码服务?
我尝试使用组件过滤器,但这并没有改变任何东西。
答案 0 :(得分:2)
这是地理编码API的预期行为。最突出的结果将会回来。但是,您可以使用Autocomplete request of Places API,最多可以返回5条建议。
您可以按国家/地区设置组件过滤器,并将类型限制为城市。请查看以下请求:
此请求同时返回"德国法兰克福" (地点ID ChIJxZZwR28JvUcRAMawKVBDIgQ)和"德国奥得河畔法兰克福" (地点ID ChIJb_u1AiqYB0cRwDteW0YgIQQ)。
为了进一步深入挖掘,您可以为每个地点ID执行地理编码请求:
希望它有所帮助。