私が読んだことから、これは私が得意ではないいくつかの複雑な数学を取ります。だから、私はここで尋ねています。
MKMapPointまたはCLLocationCoordinate2DをUTM値に変換した経験のある人はいますか?このリソース(http://www.uwgb.edu/dutchs/usefuldata/UTMFormulas.HTM)を見つけましたが、計算は圧倒的です。
私が読んだことから、これは私が得意ではないいくつかの複雑な数学を取ります。だから、私はここで尋ねています。
MKMapPointまたはCLLocationCoordinate2DをUTM値に変換した経験のある人はいますか?このリソース(http://www.uwgb.edu/dutchs/usefuldata/UTMFormulas.HTM)を見つけましたが、計算は圧倒的です。
最近、このクラスを作成し、サンプルプロジェクトをGitHubに投稿しました
必要な部分はUTMConverter.mというファイルです。緯度/経度からUTMに、またはその逆に変換するためのメソッドがあります。
1つのlibを使用してそれを行うことも、1つのlibのコードを分析してアルゴリズムを理解し、自分で行うこともできます。
これは仕事をするc++libです:http://geographiclib.sourceforge.net/html/
http://geographiclib.sourceforge.net/html/classGeographicLib_1_1UTMUPS.html
このウェブサイト(http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html)を見つけました。ソースコードを見ると、変換全体がJavaScriptを使用して行われているので、それを見て、Obj-cに変換してみることができます。
MKMapViewZoom
私はそれらをテストしていませんが、フラットマップ(幾何学的)座標とカーブドマップ(地理的)座標の間で変換できるいくつかのクラスメソッドがあるようです。これが実際に機能する場合、誰かが私に親指を立てます
//convert from WGS84 (geographic coordinates) to UTM (geometric coordinates)
+ (double)longitudeToPixelSpaceX(double)pixelX
+ (double)latitudeToPixelSpaceY(double)pixelY
//convert from UTM to WGS84
+ (double)pixelSpaceXToLongitude(double)longitude
+ (double)pixelSpaceYToLatitude(double)latitude
ここにいくつかのドキュメント
アップデート:
これは厄介ですが、このクラスのソースコードを正確に機能させるには、基本的にメソッドを自分のドメインに抽出してから、参照しているコードの部分を削除して、地球半径のメートル値にMERCATOR_OFFSET
変更する必要がありました。MERCATOR_RADIUS
これが実際に機能していることを発見したとき、私はちょっと驚きました。