使用google maps api v3找到我的地图的边界

时间:2013-08-05 20:17:39

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

我正在尝试确定正在设置动画的标记是否在我的地图的可视区域内。如果不是,我想告诉我的地图平移到标记位置作为中心位置。我该怎么做呢?这是我的代码:

var curPoint = racePath.GetPointAtDistance(curDist);
var curZoom = self.map.zoom;
var mapBounds = new google.maps.LatLngBounds(currentCenter);
var isInBounds = mapBounds.contains(curPoint);

这不起作用,因为mapBounds需要地图的西南和东北点,但我不知道如何计算它们,而不是从mapBounds.getNorthEast()和mapBounds.getSouthWest()方法获取它们 - 记录在这里:https://developers.google.com/maps/documentation/javascript/reference#LatLngBounds

关于如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:1)

要确定地图的当前边界,请在地图变量上调用getBounds(): https://developers.google.com/maps/documentation/javascript/reference#Map

如果您想知道某个点是否在当前视图区域内,请在LatLngBounds上调用'contains(LatLng)'。像这样:

var currentBounds = myMap.getBounds();
var isInSight = currentBounds.contains(myPointLatLng);
if(isInSight){
    //Your point is within the current bounds
}

如果你想要平移以使地图以你的点为中心,请在地图变量上调用'panTo(LatLng)':

var currentBounds = myMap.getBounds();
var isInSight = currentBounds.contains(myPointLatLng);
if(isInSight){
    myMap.panTo(myPointLatLng);
}