我正在使用GoogleMap
加载了很多小标记的 a 。我们说的可能是 400-500 个标记。在用户交互时,我想让这些标记的一个子集改变颜色,可能是 100-300 个。我希望在 30 毫秒或更短的时间内达到理想状态,但最多 50-60 毫秒也是可以接受的。
现在我有类似的代码:
onUserInteraction... {
changeColors(getTheSubset)
}
changeColors(subset) {
getMarkersForSubset(subset).removeAllFromMap();
map.addNewMarkers(subset)
}
所以我删除了某种颜色的旧标记(比如绿色),并为这些位置添加新标记(比如黑色)。当子集不再相关时,我会执行相反的过程。
在地图最繁忙的部分,我看到这需要 500 毫秒或更长时间,并且存在明显的滞后,不同的标记在不同的时间改变颜色。所以我很好奇是否有更好的基于数学的方法来在地图上绘制小圆圈并更改它们的颜色而不删除/添加标记,同时最小化 alloc/gc。