2009-09-03 11 views
0

多少なりとも分かりやすいように、ポリライン描画を最適化するGoogleマップAPIには、エンコードアルゴリズムがあります。現在のズームレベルに応じてパスの座標を削除して追加し、減少すると、描画計算時間が長くなります。具体的には、GPolyline.fromEncodedメソッドのアルゴリズムを意味します。 javascript以外のプラットフォームでは、そのようなアルゴリズムが必要です。もちろん私はGoogleのスタイルのプロのコードを使用するとは思わない。私がコードを見て、それを適切なプラットフォームに従って再実装できるような別のアルゴリズムはありますか?または、さまざまなズームレベルでパス図面の最適化を達成するためのあなたの提案は何ですか?Googleマップの描画アルゴリズムと似た描画コード

答えて

1

次はどうなりますか?

  1. ズームレベルに応じて定数DetailRadiusを選択します。
  2. ポリゴンで始点を選択します。
  3. ポリゴンの次の点が現在の点を中心に半径がDetailRadiusである円の内側または外側にあるかどうか、つまり現在点と次の点の間の距離がsmhereer以上の場合はDetailRadiusかどうかをテストします。
    1. 次の点が半径の外側にある場合は、現在の点からこの点に移動します。
    2. 次のポイントが半径の内側にある場合は、それを削除して3.で新しい次のポイントを続行します。

1つはまた、サークル内のすべてのポイントの削除について、現在のポイントのneighoubrsだけではないと考えることができます。これにより、細かいディテールの削減につながりますが、計算量が増え、「現在のポイントからポイントを押しのける」ために幾何学的な歪みが増える可能性があります。

+0

これは完全に論理的だと思われますが、まずこれを試してから、あなたの回答にフィードバックを与えます。ありがとう – cocoatoucher

関連する問題