1

我正在尝试返回仅限于某种区域的自动完成结果 -

(regions) 类型集合指示 Places 服务返回与以下类型匹配的任何结果: - locality - sublocality - postal_code - country - Administrative_area_level_1 - Administrative_area_level_2

[ https://developers.google.com/places/web-service/autocomplete][1]

但也被严格限制在欧盟周围。当我使用类型(城市)时,同样的代码有效。当我将类型更改为区域时,它会放弃严格的界限。区域与严格边界不兼容吗?我错过了什么愚蠢的东西吗?还删除了 region:'EU' 参数什么都不做。

function setup_autocomplete(){

        //console.log( 'setting up autocomplete' );
        //setbounds around EU
        var circle = new google.maps.Circle({ center: new google.maps.LatLng( 54.0000, -4.0000 ), radius: 60000 });

        var input = document.getElementById('home-carousel-location-input') || false,
            options = {
                region:'EU',
                types: ['(regions)'],
                bounds: circle.getBounds(), 
                strictbounds: true 

            }, autocomplete;

        if( input ){

            autocomplete = new google.maps.places.Autocomplete(input, options);
        }
    }

4

1 回答 1

0

region:由于您使用的是不受支持的参数,因此您的 Places Autocomplete 实现似乎不太正确。以下是可以在自动完成对象上设置的支持选项列表。

您可以删除该region:参数。您可以使用strictbounds:bounds:参数设置区域限制。

autocomplete.setOptions({
    strictBounds: true,
    bounds: circle.getBounds(),
    types: ['(regions)']
});

您可以在此处尝试示例 jsbin 演示。

在演示中,我将 a 设置fillColor:为圆形以可视化半径,并添加一个带有 a 的矩形fillColor:以可视化严格边界。Places Autocomplete 服务将返回与边界内的(regions) 类型匹配的任何结果。

于 2020-03-10T03:27:54.163 回答