iOS:MKMapPoint または CLLocationCooperative2D を UTM に変換するにはどうすればよいですか?
-
26-09-2019 - |
質問
私が読んだところによると、これには複雑な数学が必要ですが、私は苦手です。そこで、ここで質問させていただきます。
MKMapPoint または CLLocationCooperative2D を UTM 値に変換した経験のある人はいますか?このリソースを見つけました (http://www.uwgb.edu/dutchs/usefuldata/UTMFormulas.HTM)しかし、数学は圧倒的です。
解決
あなたは、アルゴリズムを理解し、それを自分で行うためにそれを行うために、1つのlibを使用するか、または1つのLIBのコードを分析することができます。
http://geographiclib.sourceforge.net/html/ <:これはC ++仕事をしてlibです/ A>
http://geographiclib.sourceforge.net/html/classGeographicLib_1_1UTMUPS.htmlする
私はこのウェブサイト(http://home.hiwaay.net/~taylorc/toolbox/geography/geoutm.html)を発見しました。あなたがソースコードを見てみると、全体の変換はJavaScriptを使用して行われ、あなたはそれを見ているとのObj-Cに変換しようとすることができます。
他のヒント
私は最近、このためのクラスを書いて、GitHubの
上のサンプルプロジェクトを投稿しましたあなたがしたい部分がUTMConverter.mと呼ばれるファイルです。これは、UTMに長い緯度/から変換およびその逆のための方法を有している。
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
ここにいくつかのドキュメントがあります
- 目標 C: https://github.com/jdp-global/MKMapViewZoom/blob/master/MKMapView%2BZoomLevel.m
- RubyMotion の場合: http://rubydoc.info/gems/map-kit-wrapper/0.0.5/frames
アップデート:
これは腹立たしいことですが、このクラスのソース コードを正確に動作させるには、基本的にメソッドを独自のドメインに抽出し、それから参照しているコードの部分を削除する必要がありました。 MERCATOR_OFFSET
& 変化 MERCATOR_RADIUS
地球の半径のメートル値に換算します。これが実際に機能することを発見したとき、私はちょっと、まあ、非常に驚きました。