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});

更多信息可以看this section of the documentation