我有一个输入字段,我正用于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);
不起作用,并且还具有在用户更改边界时调整边界的功能。但我不希望动态更改视口。我该怎么做?
答案 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构造函数中反转了坐标。
答案 1 :(得分:0)
旧线程,但仍然存在,所以我的5 cts:
这就是我将边界传递给选项
的方法options.bounds = { east = eastLng, north = northLat, south = southLat, west = westLng };
不需要google.maps.LatLngBounds
,这是LatLngBoundsLiteral
,非常不合适,但效果很好。