Jim*_*Jim 16 google-maps google-api google-maps-api-3 google-maps-markers google-maps-api-2
我正在寻找一种方法来重新定位(聚焦)地图,如果标记在地图之外.例如,如果您点击不在您的视野中的标记...标记1:纽约标记2:SanFransisco
在V2我这样做...但对于v3,containsLatLng需要一个额外的库并且对我不起作用...(参见我的另一篇文章: Google Maps v3 map.getBounds().containsLatLng不是函数)是他们任何其他方式聚焦到标记位置?
更新:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
puc*_*ead 41
你想要的方法是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());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38713 次 |
| 最近记录: |