7

Google マップ サービスでオートコンプリート境界を使用したい。しかし、機能していません。

//----autocomplete start
var input = (document.getElementById('searchPlace'));
var defaultBounds = new google.maps.LatLngBounds(
            new google.maps.LatLng(40.518, 29.215),
            new google.maps.LatLng(41.242, 30.370));

var options = {
            bounds:defaultBounds,
            componentRestrictions: { country: 'XX'},};

var autocomplete = new google.maps.places.Autocomplete(input, options);
//----autocomplete end

テキストボックスに入力すると、アドレスは XX 国で表示されます。しかし、私は国の地域で検索を制限したい. たとえば、都市の境界。しかし、他のアドレスはこの境界を超えています。境界は考慮されません。

4

5 に答える 5

8

問題は、LatLngBoundsが南西と北東の角を想定していることです。左下および右上隅とも呼ばれます。

それ以外の:

var defaultBounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(40.518, 29.215),
    new google.maps.LatLng(41.242, 30.370));

そのはず:

var defaultBounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(41.242, 29.215),
    new google.maps.LatLng(40.518, 30.370));
于 2016-11-13T04:07:45.503 に答える
2

2018 年 10 月更新: この回答は廃止されました。他の回答を参照してください

思い通りにはいきません。これはドキュメントが言うことです:

場所を検索するエリア。結果は、これらの境界内に含まれる場所に偏っていますが、それに限定されません。

https://developers.google.com/maps/documentation/javascript/places-autocomplete#address_forms

于 2014-01-29T13:11:30.023 に答える
0

Bounds は Maps API でのみ機能し、Places API では機能しません。

Places API でロケーション バイアスを設定するには、オプションでロケーション latlng オブジェクトと半径 (メートル単位) を使用する必要があります。

        var myLatlng = new google.maps.LatLng(35.9907,-84.0497);

        var acOptions = {
            location: myLatlng,
            radius: 150000,  // (in meters; this is 150Km)
            types: ['address'],
            componentRestrictions: {country: 'us'}
        };

これは、入力した半径にオートコンプリートの結果をバイアスするだけであることに注意してください。結果をその半径に制限しません。

于 2015-01-21T18:32:46.720 に答える