谷歌地图LatLng和LatLngBounds返回不同的结果

时间:2015-11-10 00:02:16

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

我目前正在学习使用谷歌地图,并按照以下方式为我的地图设置最大界限:GitHub issues list

我的界限设置为:

var strictBounds = new google.maps.LatLngBounds(
  new google.maps.LatLng(41.600, -87.857),
  new google.maps.LatLng(42.065, -87.310)
)

在我的dragend事件监听器中,我console.log(strictBounds)并获得以下内容:

Google Maps v3 - limit viewable area and zoom level

它将我的纬度西南纬度和纬度东北部归为一LatLng,我的西南经度和东北经度为LatLng

我可以对它进行分类并设置西南和东北坐标,以便返回将是我想要的,但我想知道为什么会发生这种情况并且我会遇到这个问题进一步与其他谷歌地图方法?

编辑:

为了澄清一下,LatLng中设置的两个strictBounds位置应该是我的西南和北东地位,以获得地图的最大界限。

当我使用上面链接中提供的addListener方法(Google Maps v3 - 限制可见区域和缩放级别)时,它会从strictBounds获取错误的纬度/经度。

而不是抓住: (41.6, -87.857), (42.065, -87.310)

它抓住: (41.6, 42.065), (-87.31, -87.856999..)

1 个答案:

答案 0 :(得分:1)

定义边界的方式是正确的。只是不要使用console.log(strictBounds)。请改用以下内容

var sw = strictBounds.getSouthWest();
var ne = strictBounds.getNorthEast();

console.log(sw.lat() + "," + sw.lng());
console.log(ne.lat() + "," + ne.lng());
相关问题