iOS: كيفية تحويل mkmappoint أو cllocationCoordinate2D إلى UTM؟
-
26-09-2019 - |
سؤال
من ما قرأته هذا يتطلب بعض الرياضيات المعقدة التي لست جيدًا فيها. لذلك ، أنا أسأل هنا.
هل لدى أي شخص خبرة في تحويل mkmappoint أو cllocationCoordinate2D إلى قيمة UTM؟ لقد وجدت هذا المورد (http://www.uwgb.edu/dutchs/usefuldata/utmformulas.htm) لكن الرياضيات ساحقة.
المحلول
يمكنك استخدام LIB واحد للقيام بذلك ، أو تحليل رمز 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.
نصائح أخرى
لقد كتبت مؤخرًا فصلًا عن هذا ونشرت عينة مشروع على Github
مثال UtmConverter لنظام التشغيل iOS
الجزء الذي تريده هو ملف يسمى utmconverter.m. لديها طرق للتحويل من LAT/Long إلى 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
بعض الوثائق هنا
- ج موضوعية: https://github.com/jdp-global/mkmapviewzoom/blob/master/mkmapview٪2Bzoomlevel.m
- لروبيموتيون: http://rubydoc.info/gems/map-kit-wrapper/0.0.5/frames
تحديث:
هذا أمر جنون ، ولكن من أجل الحصول على رمز المصدر لهذا الفئة للعمل بدقة ، اضطررت أساسًا إلى استخراج الأساليب في مجال بلدي بشكل أساسي ، ثم إزالة أجزاء من الكود المرجعية MERCATOR_OFFSET
& يتغيرون MERCATOR_RADIUS
إلى قيمة العدادات لنصف قطر الأرض. كنت نوعًا ما ، حسناً ، مندهش جدًا عندما اكتشفت أن هذا نجح بالفعل.