对于使用phonegap构建的谷歌地图应用程序,我在HTC上有一些奇怪的行为:
地图上始终有一个活动标记。如果设置了新的,则使用marker.setMap(null)
删除旧版本,这在所有桌面浏览器和iPhone上都可以正常工作。但是,在Android手机上,即使调用该功能,标记有时也不会消失。如果发生这种情况,您可以通过放大和缩小几次使其消失,然后它就消失了。
我猜问题是地图仅在缩放后新渲染。我尝试使用以下代码模拟它:
marker.setMapp(null);
google.maps.event.trigger(map,'resize');
我还尝试设置标记可见性和位置,但它们都不起作用。有没有人见过这种行为?
修改:问题仅出现在Android默认浏览器上。如果我通过Chrome打开应用程序的webversion,一切正常。但是,如果我在默认浏览器中打开完全相同的版本,则会再次出现标记问题。
编辑2 :在调用marker.setMap(null)后,我终于使用以下代码解决了问题:
var zoom = map.getZoom();
map.setZoom(1);
map.setZoom(zoom);
但这是一个非常难看的,所以我仍然在寻找一个“真实”和干净的解决方案。