我使用的是加载了大量小标记的GoogleMap
。我们可能会说400-500个标记。在用户交互时,我希望这些标记的子集可以改变颜色,可能是100-300个颜色。我希望在30ms或更短时间内达到理想的状态,但最多50-60ms是可以接受的。改变地图标记颜色的有效方法
现在我有代码是这样的:
onUserInteraction... {
changeColors(getTheSubset)
}
changeColors(subset) {
getMarkersForSubset(subset).removeAllFromMap();
map.addNewMarkers(subset)
}
所以我删除旧的标记在一些颜色(比如,绿色),并为这些位置(比如,黑色),增加新的标记。当子集不再相关时,我做相反的过程。
在地图最繁忙的部分,我看到这需要500毫秒或更长时间,并且不同标记在不同时间更改颜色的时候会出现明显滞后。所以我很好奇,如果有一个更好的基于数学的方法来绘制地图上的小圆圈,并改变它们的颜色,而不删除/添加标记,同时最小化alloc/gc。
我试过了,但是你不能在MarkerOptions上设置图标级别。一旦你设置了'.icon',你不能再次调用它。 – yarian 2013-02-14 20:04:58