私はさまざまな車両のコースをプロットする必要があるアプリケーションがあります。トレイルには、毎分1回、どの向きに向いているかを示すマーカーを付ける必要があります。私たちが最終的に描くのは、最大10万のマーカーがプロットされる必要があることです。Androidここでは多くのMapMarkersを描画するAPIが遅いです
実際に私が言うことができる唯一の方法は、ビットマップを生成してAPIに渡すことですが、これは多くのメモリを使い果たしてしまい、使用が遅くなります。コードにキャッシュを追加して、絶対に必要でない限りビットマップが生成されないようにしましたが、まだ遅すぎます。たとえば、約30秒がNexus 5に〜10,000個のマーカーをプロットするのですが、実際のポリラインを描画するのはかなり速いですが、ポリラインに沿ってマーカーが必要です。おそらく私たちはビットマップを生成する必要がないため、MapKit(Appleから)はiPhone 5で半分の秒数で同等の数のマーカーをプロットします。だから..
- を多数プロットするにはどうすればよいでしょうか?
Image
の代わりにDrawable
をプロットすることはできますか?Map
からすべてのマーカーを効率的に削除する方法はありますか?現時点では、私はそれを一つずつやり直す必要がありますが、それはやはり遅くなります(removeMapObjects
はループでremoveMapObject
を呼び出します)。- 別の方法でこれを実行する必要がありますか?
それは遅いコードは間違いなくHERE SDKであり、具体的にMap.addMapObjects
とMap.removeMapObjects
、と私は明らかにMapMarker
のインスタンスを渡すことを言及する価値があるだろう。
3.マップオーバーレイを使用できます。マップの代わりにすべてのマーカーをオーバーレイに追加し、オーバーレイ上でadd/removeMapObjectを呼び出して、すべてのマーカーを一度に表示/非表示にします。私はそれをテストしなかったが、私はそれが各マーカーの削除を呼び出すよりも速くなければならないと思う。 – Teriblus