如果标记位于地图之外,我正在寻找一种重新定位(聚焦)地图的方法。例如,如果您单击视图中不在的标记... 标记1:纽约标记2:SanFransisco
在V2中我是这样做的...但是对于v3来说,containsLatLng需要一个额外的库并且对我不起作用...(参见我的另一篇文章:Google Maps v3 map.getBounds().containsLatLng is not a function)是否有任何其他方式可以关注标记位置??更新
if ((!map.getBounds().contains(marker.getPosition())) & (showAllCategoryElements == 0)) {
var newCenterPointLng = (map.getBounds().getCenter().lng() + marker.getPosition().lng()) / 2;
var newCenterPointLat = (map.getBounds().getCenter().lat() + marker.getPosition().lat()) / 2;
map.panTo(marker.getPosition());
//map.setCenter(new google.maps.LatLng(newCenterPointLat, newCenterPointLng));
if (!map.getBounds().contains(marker.getPosition())){
map.zoomOut();
}
}
答案 0 :(得分:40)
您想要的方法是contains(),而不是containsLatLng()。 map.getBounds().contains(marker.getPosition())
您可以使用地图的setCenter()或panTo()方法以标记位置为中心:map.setCenter(marker.getPosition())
或map.panTo(marker.getPosition())
因此,如果我理解你正在尝试做什么,它应该是这样的:
if ((!map.getBounds().contains(marker.getPosition())) && (showAllCategoryElements == 0)) { //Note the double &
map.setCenter(marker.getPosition());
//OR map.panTo(marker.getPosition());
}