تنسيق الإحداثيات الخاطئ (WGS84) أم أنني أفتقد شيئًا؟
سؤال
سؤال وهمية هنا. أقوم بتطوير تطبيق يجلب معلومات مدركة للموقع. أحصل على إحداثيات الموقع بالطريقة التالية: LAT =+AAA.BB.CC.DD & LON =+AAA.BB.CC.DD & DATUM = WGS84
كيف يمكنني تحويل هذه الإحداثيات إلى خط الطول القياسي مع نقطة واحدة. يبدو الآن كما لو أن العميل يطلب البحث عن عنوان IP.
المحلول
wgs84 = '123.12.34.56'
deg, minute, second, fraction = wgs84.split(/\./).map(&:to_i) # Ruby 1.9
deg, minute, second, fraction = wgs84.split(/\./).map {|x| x.to_i} # Ruby 1.8
deg += minute / 60.0 + second / 3600.0 + fraction / 360000.0
puts deg # => 123.20970370370371
يأخذ السلسلة مع إحداثيات WGS84 فيه ، يقسمها على الفترات ، وتحول النتائج من النص '34'
إلى الرقم 34
, ، ثم يقوم القسم الضروري بتحويل الدقائق والثواني والكسور من الثواني إلى تعديلات النقطة العائمة المضافة إلى خط العرض (أو خط الطول).
نصائح أخرى
بتجميعها من قبل @Myrddin شبه الاتحاد بأنه ارتكب خطأً بسيطًا ، أقوم بنشر إجابة في محاولة صارخة لجمع مندوب.
وأظن أن
123.12.34.56
يجب تفسيرها على أنها 123d12m34.56s وتحويلها إلى درجات عشرية مثل هذا:
123+12/60+34.56/3600
لا تنتمي إلى StackOverflow