約300ポイントで地図上に1つのpng(描画可能)を表示しようとしています。Sqlite テーブルから座標を取得し、カーソルにダンプしています。カーソルを解析してそれらを表示しようとすると、画像が描画されるまでに、画像あたり約 0.5 秒かかります。疑わしいほど遅いことがわかったので、パフォーマンスを向上させる方法についての洞察が役立ちます。レンダリングを行う私のコードのスニペットは次のとおりです。
while (!mFlavorsCursor.isAfterLast())
{
Log.d("cursor",""+(i++));
point = new GeoPoint(
(int)(mFlavorsCursor.getFloat(mFlavorsCursor.getColumnIndex(DataBaseHelper.KEY_LATITUDE))*1000000),
(int)(mFlavorsCursor.getFloat(mFlavorsCursor.getColumnIndex(DataBaseHelper.KEY_LONGITUDE))*1000000));
overlayitem = new OverlayItem(point, "", "");
itemizedoverlay.addOverlay(overlayitem);
itemizedoverlay.doPopulate();
mFlavorsCursor.moveToNext();
}
mapOverlays.add(itemizedoverlay);
すべてのステップを分離しようとしましたが、遅いのは次のようです。
itemizedoverlay.doPopulate();
これは、プライベートpopulate()メソッドを実行する ItemizedOverlay を拡張するクラスのパブリック メソッドです。