gpt4 book ai didi

google-maps - Google Maps API v3 将 map 重新​​定位到标记

转载 作者:行者123 更新时间:2023-12-03 07:06:33 35 4
gpt4 key购买 nike

如果标记位于 map 之外,我正在寻找一种使 map 居中(聚焦)的方法。例如,如果您单击不在您的 View 区域中的标记...标记 1:纽约 标记 2:旧金山

在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();
}
}

最佳答案

您想要的方法是 contains(),而不是 containsLatLng()。 map.getBounds().contains(marker.getPosition())

您可以使用 map 的 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());
}

关于google-maps - Google Maps API v3 将 map 重新​​定位到标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10917648/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com