أكثر

تحويل خطوط الطول / العرض إلى الديكارتي والعكس؟

تحويل خطوط الطول / العرض إلى الديكارتي والعكس؟


عملية حسابية بسيطة لسبب ما أخطأت في فهمي:

def convert_to_vector (r ، lat ، long): x = r * math.cos (lat) * math.cos (long) y = r * math.cos (lat) * math.sin (long) z = r * math. sin (lat) إرجاع x، y، z def convert_to_lat_long (x، y، z): r = math.sqrt (math.pow (x، 2) + math.pow (y، 2) + math.pow (z، 2)) lat = math.acos (z / r) * 180 / math.pi long = math.atan2 (x، y) * 180 / math.pi خط الطول العائد ، طويل def convert_to_dec_degrees (درجة ، دقائق ، ثانية ، اتجاه) : dec = deg + minutes / 60 + sec / 3600 إذا كان الاتجاه == 'S' أو الاتجاه == 'W': dec * = -1 إرجاع dec kansas_city = [convert_to_dec_degrees (39، 5، 59، 'N') ، convert_to_dec_degrees (94، 34، 41، 'W')] vector1 = convert_to_vector (1، kansas_city [0]، kansas_city [1]) k_city_latlon = convert_to_lat_long (vector1 [0]، vector1 [1]، vector1 [2]) print ( kansas_city) print ([k_city_latlon [0]، k_city_latlon [1]])

لا يمكنني تحديد الوظيفة التي تسبب لي المشكلة ، لكنني أشك في أن التحويل يعود إلى خطوط الطول / العرض.

نتائج الطباعة إلى وحدة التحكم هي:

[39.099722222222226, -94.57805555555555] [9.7509365327902, 108.92341788716132]

أنت تقوم بالتحويل إلى درجات ، ولكن بعد ذلك فيconvert_to_vectorأنت تتعامل مع هذه الحجج على أنها (ضمنيًا) بالراديان ، لأنmath.cos ()وmath.sin ()أخذ حجة بالتقدير الدائري.

لديك الفكرة الصحيحة فيتحويل_إلى_لات_طويلةأين تفعل180 / math.piجزء صحيح. تحتاج فقط إلى ضرب الحجج فيmath.pi / 180في الخاص بكconvert_to_vectorوظيفة.


شاهد الفيديو: تحويل الاحداثيات العالمية International projection إلى احداثيات محلية local projection