我使用SVG path notation来创建标记,同时使用Google Maps API v3创建折线。有时,在添加了几个标记后,它们就不再从地图上显示。如果我平移地图,即使只有1px,它们也会再次显示。
添加几个后,SVG标记停止显示
pan后再次显示SVG标记
这发生在FF,Safari,Chrome和iPhone浏览器中。
下面是我的折线代码::
var lineSymbol = {
path: g.SymbolPath.FORWARD_OPEN_ARROW,
scale:1.5
};
polyOptions = {
strokeColor: '#0026b3',
strokeOpacity: 1.0,
strokeWeight: 1,
geodesic: true,
icons: [{
icon: lineSymbol,
repeat: '100px'
}],
zIndex: 10
};
polyLine = new g.Polyline(polyOptions);
polyLine.setMap(map);
和SVG标记的代码:
var path = polyLine.getPath();
path.push(event.latLng);
var icon = {
path: "M68.501,23.781 43.752,48.529 66.918,71.695 66.918,120.362 70.085,120.362 70.085,71.694 93.249,48.529",
fillColor: iconColor,
fillOpacity: .8,
anchor: new g.Point(70.085, 120.362),
strokeWeight: 0,
scale:.4
};
var marker = new g.Marker({
position: event.latLng,
map: map,
draggable: false,
icon: icon,
title: title,
zIndex : -20
});
你知道为什么我的标记在地图上就消失了吗?提前谢谢。
在这里是一个可以重现问题的小提琴:
这里有一个YT视频来说明这个问题:
编辑:
谷歌已经创建了一个错误报告:http://code.google.com/p/gmaps-api-issues/issues/detail?id=5351
发布于 2013-05-05 01:09:53
适用于我,使用Chrome (Windows)版本26.0.1410.64进行测试
然而,有几件事需要尝试一下:
zIndex -20
google.maps.event.trigger(map, 'drag');
上
这是我尝试过其中一些东西的。
编辑:
经过几次测试,我注意到使用map.panTo(latLng);
而不是map.setCenter(latLng);
可以正确绘制SVG标记。或者,如果您不想平移到中心,使用map.panBy(x, y);
作为1个像素,然后返回到前一个中心(快速)可能具有类似的解决此问题的效果。
这里是,看看它的实际效果。
发布于 2013-11-19 21:14:58
我使用png标记图标作为标记也有同样的问题,有时在fitBounds之后(一些标记会消失,当我放大时它们会出现),只有当我将这个标记设置为可拖动时才会消失。
我试过这个:
map.panTo(map.getCenter());
设置标记后可拖动。现在它工作得很好。
这似乎是V3实现中的一个错误。
https://stackoverflow.com/questions/16317072
复制相似问题