28
autocomplete = new google.maps.places.Autocomplete(input, { types: ['geocode'] });

返回街道和城市以及其他更大的区域。是否可以仅限制在街道上?

4

2 回答 2

3

这个问题很老,但我想我会添加它以防其他人遇到这个问题。不幸的是,将类型限制为“地址”并没有达到预期的结果,因为仍然包括路线。因此,我决定做的是遍历结果并执行以下检查:

result.predictions[i].types.includes('street_address')

不幸的是,我很惊讶我自己的地址没有被包括在内,因为它返回以下类型:{ types: ['geocode', '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])
    }
}
于 2020-12-08T19:58:22.670 回答
0

我想你想要的是{ types: ['address'] }

您可以通过此实时示例看到这一点:https ://developers.google.com/maps/documentation/javascript/examples/places-autocomplete (使用“地址”单选按钮)。

于 2015-05-06T23:41:58.997 回答