GoogleMap
たくさんの小さなマーカーがロードされた状態で使用しています。私たちはおそらく400-500のマーカーを話している。ユーザーとの対話時に、これらのマーカーのサブセット、おそらく100〜300個のマーカーの色を変更したいと思います。これは理想的には30ms以下で達成したいのですが、50〜60msまでは許容範囲です。
今、私は次のようなコードを持っています:
onUserInteraction... {
changeColors(getTheSubset)
}
changeColors(subset) {
getMarkersForSubset(subset).removeAllFromMap();
map.addNewMarkers(subset)
}
そこで、古いマーカーをいくつかの色(たとえば、緑)で削除し、それらの場所に新しいマーカー(たとえば、黒)を追加します。サブセットが関連しなくなったら、反対のプロセスを実行します。
マップの最も忙しい部分では、これには500ミリ秒以上かかることがわかります。また、さまざまなマーカーがさまざまな時間に色を変えるという顕著な遅れがあります。ですから、マーカーを削除/追加せずに、alloc / gcを最小化しながら、地図上に小さな円を描き、色を変更するためのより良い数学ベースの方法があるかどうか興味があります。