2

背景:地図を多用する一連の位置情報ベースのアプリを作成しています。これらのマップには、サーバーからフェッチされた場所が注釈として付けられ、データが必要なマップの領域が渡されます(MKCoordinateRegionによく似ていますが、参照座標の場所が異なるlat/longおよびlatDelta/longDeltaとして定義されます) 。これらのリージョンを管理するときに使用するヘルパーメソッド/クラスをたくさん書いています。iOS 3.xとの互換性が必要です(MKMapRectがリリースされていることを意味します)。

質問: MKCoordinateRegionsを長方形のように扱うことで、失敗に備えることができますか?具体的には、基本的に長方形と同じプロパティを持っていると仮定して、それらのジオメトリを長方形のジオメトリであるかのように扱っています。MKCoordinateRegionUnion / Inset / Outsetなど、CGRectのヘルパーメソッドを反映するいくつかのメソッドを実装しました。これらはすべて単体テストに合格していますが、基礎となる仮定が正しいかどうか疑問に思い始めています。実際、MKCoordinateRegionは幾何学的な長方形を表すのではなく、互いに垂直な2組の平行な平面で囲まれた球面の領域を表します(誰かがそのためのより良い用語で私を手がかりにできる場合はボーナスポイント)。

私はまだ異常を経験していませんが、多くのアプリはジオメトリの理解に依存しているので、間違った道を進んでいるかどうかを今すぐ把握したいと思います。学校で3Dの放射状の幾何学を扱っているクラスのほとんどを眠っていたという事実は、私の直感が正しいという自信をあまり与えません。

4

1 に答える 1

5

赤道、本初子午線、日付線のエッジケースを考慮に入れれば、大丈夫だと思います。

または、rectsのような独自のMKMapRectを開発することもできます。Troy Brantには、rectsがどのように形成されるかについてのすばらしいブログ投稿があります。

http://troybrant.net/blog/2010/01/mkmapview-and-zoom-levels-a-visual-guide/

ブログ投稿は主にズームレベルに関するものですが、そこにあるすべての情報を使用して、独自のマップrectライブラリを構築できます。

球の表面の大円で囲まれた領域は、球形ポリゴンと呼ばれます。だから私はあなたがそれらを球形の長方形と呼ぶことができると思います。

于 2010-12-13T06:33:15.757 に答える