我正在开发一款基于地理定位的游戏。带有标记的地图是其核心组成部分之一。我们正在使用
不幸的是,我在地图上正确显示标记时遇到了一些问题。看起来瓷砖周围有一个小边框,标记在这个边框处被切割。 问题不会始终发生。
放大地图后,标记会正确显示。
下面的代码显示了我们添加标记和定义地图的方式。
map = new google.maps.Map(document.getElementById('map'), {
zoom : 14,
mapTypeControl : false,
center : new google.maps.LatLng(lastPos.lat, lastPos.lon),
mapTypeId : google.maps.MapTypeId.ROADMAP,
streetViewControl : false,
styles : [..]
});
[some time later, after making sure map is initialized, is displayed and so on...]
var markerimage = {
url : image,
size : new google.maps.Size(60, 106),
origin : new google.maps.Point(0, 0),
anchor : new google.maps.Point(15, 53),
scaledSize : new google.maps.Size(30, 53)
};
var marker = new google.maps.Marker({
position : new google.maps.LatLng(spot.position.latitude, spot.position.longitude),
icon : markerimage,
optimized : true,
clickable : true,
draggable : false,
map : map,
zIndex: 2
});
是否有人对此问题或如何解决此问题有所了解?
谢谢!
编辑:
我刚试了几件事。我在应用程序中禁用了所有CSS,并且所有不需要Javascript,我从标记和地图中删除了自定义样式。但Bug仍然会发生。现在,地图大小设置为固定宽度和高度(以像素为单位)。我真的对这个bug感到疯狂!标记复制,拉伸和切割......! 我在下面附上了一个新的scrennshot。
。
答案 0 :(得分:0)
这很难调试,因为它难以重现 - 但我会尝试提供一些提示来尝试作为答案:
带图像的标记(png,gif)转optimized: false
,如果这不帮助尝试删除markerImages,看看会发生什么。还有错误吗?
从地图中删除自定义样式(尝试不使用自定义样式和标记图像,不使用自定义样式,但使用标记图像等。)
尝试侦听tilesloaded,bounds_changed等事件,并使用调试打印来检查它们是否被触发。当他们这样做时:尝试在那之后初始化你的标记 - 第一次直接 - 然后用小暂停
尝试删除图像缩放和特殊锚设置等,尽可能减少
例如,确保通过将它们附加到DOM来加载markerImage。 (这是网络图像的正常和良好做法 - 我不知道phonegap是否有不同的东西)。
如果似乎没有任何帮助 - 请来自gooooogle:)