2011-01-17 17 views
1

私はこのようにmaded座標(緯度と経度)の配列を有する:ループで経度/緯度ポイントのサブセットを表示していますか?

[0] = "45.,9.12345" 
[1] = "46.11111,9.12345" 
[2] = "47.22222,9.98765" 
[...] etc 

、(UTMの北距/ UTMの東距)メートルで、これらの座標を変換し、その後、私は、画素にこれらCOORDSを変換しますカスタムマップ上にルート線を描くために、スクリーン上の(X/Y)(出力デバイスはiPhoneです)。

[0] = "512335.00000,502333.666666" 
[...] etc 

戻ってくるピクセルは、(ルート計算をシミュレートする)画面に線を引く方法に渡されます。

[0] = "20,30" 
[1] = "21,31" 
[2] = "25,40" 
[...] etc 

として(緯度/経度)を座標あまりにも多くあり、Iは、結合したマップ(画面上のマップの可視部分)内に充填しない値を排除緯度/経度の配列を切り捨てる必要があります。
マップの境界は、緯度/経度、左上、右下の2つのコードです。

ここでは、この配列をループして(ソートされていない)、値がバインドされているかどうかを確認し、外にある値を削除した後はどうすればよいでしょうか?
画面に表示されているコードのみを含むクリーンな配列を返すには?

注:coords配列は非常に大きな配列です。 4000/5000アイテムのカップル。
ドラッグやズームのたびにループする方法です。

この配列の検索とコントロールを最適化するにはどうすればよいですか?

+2

これには、主観的な回答ではなく、かなり具体的な技術的な回答があります。これをSOに移行することをお勧めします。 –

+0

@Gary:投稿を* SOに移行できますか(私は今までとは違う方法を見たことがあります)? – FrustratedWithFormsDesigner

+1

はい、投稿はSOに移行できます。そして、それが終わりに行くところです。 – Walter

答えて

2

私はいくつかのステップにこれを壊すことをお勧めしたい:

  1. 新しい座標系におけるメートルのペアにそれぞれ経度/緯度のペアに変換します。
  2. セット内のすべてのポイントを保持するkdツリーデータ構造を作成します。これにより、特定の矩形範囲にある点を効率的に効率的にクエリできます。
  3. ビューポートが変更されるたびに、その矩形内に表示されるkdツリー内のすべての点を見つけます。
  4. ポイントを表示するには、表示されるポイントのセットを繰り返し、それぞれのポイントを表示します。
関連する問題