非常奇怪的问题。我有一个列表上的项目。他们切换点击展开和折叠。展开后,显示在其下的项目也会显示为我在页面上的Google地图上的标记。在我的测试中,我有一个项目在列表中。当我点击时,它下面的相关项目会显示,它们的标记将显示在地图上,或者根据切换状态隐藏。地图标记在一定量的切换点击后消失
始终如一,在此物品正确显示并隐藏地图上的11个点击之后,其中一个应显示的标记不再显示。我不知道为什么每次只有11次点击。更奇怪的是,如果我在地图上拖动或缩放,丢失的标记马上显示出来。由于这个线索,我知道问题出在哪里,现在我已经禁用了,问题就消失了。下面是相关的代码
function setNewMarkers() {
//clearOldMarkers();
bounds = new google.maps.LatLngBounds();
for (i = 0; i < markers.length; i++) {
markers[i].setMap(map);
bounds.extend(markers[i].getPosition());
}
map.fitBounds(bounds);
/*if (dragged == false && dblclick == false) {
map.fitBounds(bounds);
if (markers.length == 1) {
map.setZoom(13);
}
}*/
}
通知在底部的注释部分。这是问题,并在评论结束后消失。如果只有一个标记(家庭底座标记)并且所有列表项都已折叠,我试图防止地图放大得太远。 所以我必须调用fitBounds,但是如果只有一个标记,即使它适用于10次点击,但我之后调整缩放的方式也有问题。
所以我错过了一个微妙的,我认为可能有更好的方法来处理这个,我不知道。谢谢。
也许如果只有一个标记,则不应该调用fitBounds。 – geocodezip
这是一个想法。也许我应该拿一个剩下的标记的纬度,并使地图中心成为那个,然后让缩放13.让我看看别人怎么说。谢谢。 – user192632
这是一个好主意,它似乎工作正常。如果您可以在此添加答案,并将其纳入您的建议中,我可以将其标记出来。 map.panTo(标记[0] .getPosition());而不是map.fitBounds – user192632