Google地图自动填充不考虑边界

时间:2015-05-19 10:16:26

标签: javascript google-maps google-places-api

我有一个输入字段,我正用于autosuggest。这很好用,我也将AutoSuggest限制在特定范围内。但是,AutoSuggest不会考虑边界。我有以下代码

google.maps.event.addListenerOnce(map, 'idle', function() {
                var input = document.getElementById('userlocation');
                console.log(bounds);
                var options = {
                    bounds: bounds,
                    types: ['address']
                };
                autocomplete = new google.maps.places.Autocomplete(input, options);
            });

bounds是具有以下数据的LatLngBounds对象

  

j:38.15153503418
  k:37.81086730957

  

j:23.63938140869095
  k:23.958692550658952

应该是雅典的界限,还有更多的东西。

我现在面临的问题是,当我输入“Athen”时,我还会收到来自德国,Malyisa,纽约等的条目,其中包含雅典这个词。

任何人都知道一些不合适的事情吗?

我也试过这个

autocomplete.bindTo('bounds', map);

不起作用,并且还具有在用户更改边界时调整边界的功能。但我不希望动态更改视口。我该怎么做?

2 个答案:

答案 0 :(得分:1)

我在雅典,希腊获得的界限是;

  "geometry": {
    "bounds": {
      "Ea": {
        "A": 37.9488181,
        "j": 38.0328563
      },
      "va": {
        "j": 23.68698619999998,
        "A": 23.7896925
      }

视口是:

    "viewport": {
      "Ea": {
        "A": 37.9488181,
        "j": 38.0328563
      },
      "va": {
        "j": 23.68698619999998,
        "A": 23.7896925
      }
    }

看起来你在google.maps.LatLngBounds构造函数中反转了坐标。

autocomplete example from the documentation modified to start limited to Greece (you can change the bias)

original reference

autocomplete seach for hotels in Athens, Greece

答案 1 :(得分:0)

旧线程,但仍然存在,所以我的5 cts:

这就是我将边界传递给选项

的方法
options.bounds = { east = eastLng, north = northLat, south = southLat, west = westLng };

不需要google.maps.LatLngBounds,这是LatLngBoundsLiteral,非常不合适,但效果很好。