سؤال

من ما قرأته هذا يتطلب بعض الرياضيات المعقدة التي لست جيدًا فيها. لذلك ، أنا أسأل هنا.

هل لدى أي شخص خبرة في تحويل 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

بعض الوثائق هنا

تحديث:

هذا أمر جنون ، ولكن من أجل الحصول على رمز المصدر لهذا الفئة للعمل بدقة ، اضطررت أساسًا إلى استخراج الأساليب في مجال بلدي بشكل أساسي ، ثم إزالة أجزاء من الكود المرجعية MERCATOR_OFFSET & يتغيرون MERCATOR_RADIUS إلى قيمة العدادات لنصف قطر الأرض. كنت نوعًا ما ، حسناً ، مندهش جدًا عندما اكتشفت أن هذا نجح بالفعل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top