setIcon() 更改图标但不更改具有大量标记的地图上的可寻址 DOM
setIcon() changing Icon but not changing addressable DOM on map with large number of markers
我首先使用 .setIcon()
更改标记的图标。
然后我旋转图标:
$('img[src="https://' + thedomain +
'/xplorit_common/assets/SVG/map_radar.svg"]').css({
'transform': 'rotate(' + adj_offset_bearing + 'deg)',
});
使用少量标记一切正常。但是当我有超过 200 个标记时,图标将 而不是 旋转。标记图像 发生变化,但 <img> src
属性 没有 在 Dev Tools 中查看元素时发生变化(即使在搜索 map_radar.svg 时)。回过头来看,图标不旋转是有道理的;因为该值在 DOM 中实际上不可寻址。但是“正确”图标是可见
是没有意义的
我已经把这匹马打死了,需要一些外部输入。有什么想法吗?
设置optimized:false
选项
如果您使用具有自定义图标的特定标记 .svg
,您可以尝试使用大量标记的一些困难。要绕过这个问题,您需要在构建标记时禁用默认设置的优化渲染 属性。为此,只需在设置每个标记时添加行 optimized:false
:
var marker = new google.maps.Marker({
position: myLatlng,
map: myGmap,
icon: {url: mySvgIconUrl},
optimized: false
});
或者用setOption()
方法来做:
marker.setOptions({'optimized':false});
我首先使用 .setIcon()
更改标记的图标。
然后我旋转图标:
$('img[src="https://' + thedomain +
'/xplorit_common/assets/SVG/map_radar.svg"]').css({
'transform': 'rotate(' + adj_offset_bearing + 'deg)',
});
使用少量标记一切正常。但是当我有超过 200 个标记时,图标将 而不是 旋转。标记图像 发生变化,但 <img> src
属性 没有 在 Dev Tools 中查看元素时发生变化(即使在搜索 map_radar.svg 时)。回过头来看,图标不旋转是有道理的;因为该值在 DOM 中实际上不可寻址。但是“正确”图标是可见
我已经把这匹马打死了,需要一些外部输入。有什么想法吗?
设置optimized:false
选项
如果您使用具有自定义图标的特定标记 .svg
,您可以尝试使用大量标记的一些困难。要绕过这个问题,您需要在构建标记时禁用默认设置的优化渲染 属性。为此,只需在设置每个标记时添加行 optimized:false
:
var marker = new google.maps.Marker({
position: myLatlng,
map: myGmap,
icon: {url: mySvgIconUrl},
optimized: false
});
或者用setOption()
方法来做:
marker.setOptions({'optimized':false});