sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

Google Maps Android で どれくらいPolylineオブジェクトを貼り付けられるかの実験

Polylineで線が描けるのはわかりましたが、じゃあ具体的にどれ位貼り付けても大丈夫なのか試してみました。

で、結論から書いちゃうと、オブジェクト数をできるだけ押さえて、頂点数を増やせってことみたいです。

目的

トラッキングデータを少なくとも3万点はプロットしたい。

案1

v1の時に実装してたみたいに、MapViewを継承してonDrawで自分で描く方法はどう?

内部はGLSurfaceViewらしいし、あんまりそーゆーのはよくなさげ。どうやったらできるのか調べるのも嫌なのでボツ

案2

素直にPolylineを使う

それが楽でいいです

実験開始

ということで、GalaxyNexus 海外版の4.2.2なドノーマル機で調査してみました

頂点数固定

まずは100頂点のpolylineを、10, 100,300,500,1000個プロットしてみました。

10 100 300 500 1000
スクロール 楽勝 楽勝 いける いける 少しひっかかるがいける
ズーム いける 許容範囲 ちょっと厳しい うーん厳しい かなり厳しい

スクロールはいいけどズームが厳しい感じ。

オブジェクト数固定

こんどは100個のpolylineオブジェクトを、頂点数を 10,100,300,500,1000と変えてプロットしてみました。

10 100 300 500 1000
スクロール 楽勝 楽勝 楽勝 いける 少しひっかかるがいける
ズーム いける いいんじゃない 許容範囲 許容範囲 許容範囲

こっちはまぁまぁいいんじゃない?

結論

オブジェクトが増えるとそれだけ管理の手間が増えるから遅くなるのはなんとなく納得です。

あと、オブジェクトの頂点再設定も500点くらい一瞬で済みますし、100個x500頂点あたりを 参考値として、後は実機の描画性能計測して増減させるように実装することにします。

試してはいませんが、iOS版も似たような結果になるんでしょう。