أكثر

قم بتحويل 1 م إلى درجات عشرية (WGS84) اعتمادًا على موقع المضلع

قم بتحويل 1 م إلى درجات عشرية (WGS84) اعتمادًا على موقع المضلع


لدي طاولة بها مضلعات صغيرة مبعثرة حول منطقة "قارية" (البرازيل). كيف يمكنني تحويل 1 متر إلى درجات عشرية لنظام مرجعي wgs84 (خط الطول / خط العرض) اعتمادًا على موضع كل مضلع؟

سياق أوسع: أحاول استخدام ST_SimplifyVW (geom ، التسامح) لإزالة المسامير من المضلعات (كما هو موضح هنا). يتم إعطاء معامل التسامح لـ ST_SimplifyVW من حيث وحدة SRID ، وهي درجات عشرية. أفضل أن يتم توفير معامل التسامح بالمتر المربع للأسباب التالية: أ) أكثر سهولة ؛ ب) أود أن يكون التفاوت المستخدم هو نفسه بغض النظر عن خط عرض المضلعات.

لذلك من الناحية المثالية ، سيكون لدي شيء مثل:

ST_SimplifyVW (geom، f_m_to_degrees (1، geom))

حيث تقوم الوظيفة الوهمية "f_m_to_degrees" بتحويل المسافة المزودة إلى درجات إلى الإسقاط الأكثر دقة حول موقع geom.


محتمل،ST_SimplifyVW ()يعمل على إحداثيات مستوية. لتحويل المسافة_الدرجات إلى مسافة_متر أمر بسيط:

Distance_meters = earth_radius_meters * to_radians (مسافة_درجات)

ومع ذلك ، فإن معالجة الإحداثيات في مسافة الدرجات يؤدي إلى حدوث تشوهات:

  • صفر تشويه في اتجاه الشمال والجنوب
  • تشويه يتناسب مع جيب التمام (خط العرض) في اتجاه شرق غرب

البديل ، كما هو مقترح في التعليقات ، هو عرض إحداثياتك على نظام إحداثيات محلي مناسب (به تشوه قليل نسبيًا) ثم العمل مباشرة بالأمتار.


شاهد الفيديو: محاضرة 12 نظم احداثيات الاسناد 4