autocomplete = new google.maps.places.Autocomplete(input, { types: ['geocode'] });
返回街道和城市以及其他较大的区域。是否可以仅限于街道?
autocomplete = new google.maps.places.Autocomplete(input, { types: ['geocode'] });
返回街道和城市以及其他较大的区域。是否可以仅限于街道?
这个问题比较老,但我想补充一下,以防其他人也遇到了这个问题。仅仅限制类型为'address'并不能达到预期的结果,因为路线仍然会被包含在内。因此,我决定遍历结果并实现以下检查:
result.predictions[i].types.includes('street_address')
不幸的是,我惊奇地发现我的地址没有被包括进来,因为它返回了以下类型:{ types: ['geocode', 'premise'] }
因此,我决定从中开始计数,并且任何包含'geocode'或'route'类型的结果必须包含至少一个其他术语才能被包括进来(无论是'street_address'还是'premise'或其他)。因此,路线被排除,在具有完整地址的任何内容都将被包括。它不是万无一失的,但它工作得相当好。
循环遍历结果预测,并实现以下内容:
if (result.predictions[i].types.includes('street_address')) {
// Results that include 'street_address' should be included
suggestions.push(result.predictions[i])
} else {
// Results that don't include 'street_address' will go through the check
var typeCounter = 0;
if (result.predictions[i].types.includes('geocode')) {
typeCounter++;
}
if (result.predictions[i].types.includes('route')) {
typeCounter++;
}
if (result.predictions[i].types.length > typeCounter) {
suggestions.push(result.predictions[i])
}
}
西班牙维拉诺瓦卡特鲁
? - Roni Castro我认为您想要的是 { types: ['address'] }
。
您可以通过此实时示例查看其效果:https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete(使用“地址”单选按钮)。
{ types: ['address'] }
并不能仅限于返回 street_address
类型的结果,它还会包括类型为 route
的结果,即没有编号的道路。 - MaryKNhttps://maps.googleapis.com/maps/api/geocode/json?address=spain&result_type=street_address&location_type=ROOFTOP&key=YOUR_API_KEY
。 - Roni Castro