1

そのため、Open Streen Map 上に線、ポリライン、円などを描画するアプリケーションがあります。マップが無効になると、オーバーレイの onDraw メソッド内で各アイテムを再描画するリストを反復処理します。私の描画数が約300以上になるまで、これはうまくいきます。その後、重大な UI の遅延が発生します。

これを行う効率的な方法を探していますか?

「ボード」描画アプリケーションでビットマップキャッシュ描画を行いました。背景の投影が変化する可能性があるため、この状況では機能しませんが、描画は移動する必要があります。

4

1 に答える 1

2

GeoPoints を保存してから、再描画のたびに「MapView Point」に大量の変換を行っていました。投影には、保存して「MapView Point」に簡単に投影できる「中間点」があることがわかります。したがって、重い計算部分は一度だけ実行されます。

手順

  • (fromPixels) を使用して GeoPoint へのモーション イベント (x,y)
  • (toMapPixelsProjected) を使用して GeoPoint から中間値へ
  • 図面表示用の中間値をキャッシュする
  • OnDraw -> (toMapPixelsTranslated) を使用した画面座標の中間値
于 2011-10-03T17:50:12.673 に答える