أكثر

عامل مقياس الخريطة عند التحويل من Mercator إلى Equirectangular

عامل مقياس الخريطة عند التحويل من Mercator إلى Equirectangular


لنفترض أن لدي خريطة في إسقاط مركاتور ، وأنا أعرف خطوط العرض العلوية والسفلية:

topLatitude = 80 ؛ bottomLatitude = -55 ؛

أعرف أيضًا عرض الخريطة وارتفاعها:

العرض = 800 ؛ الارتفاع = 500 ؛

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

كيف يمكنني حساب الارتفاع الجديد للخريطة؟


لقد توصلت إلى حل.

هذه صيغة لحساب x و y لخريطة Mercator المتوقعة:

هذه هي وظيفة y:

الدرجات الوظيفيةالراديان (الدرجات) {درجات الإرجاع / 180 * Math.PI ؛ } function mercatorLatitudeToY (latitude) {return Math.log (Math.tan (Math.PI / 4 + degreesToRadians (latitude) / 2)) ؛ }

عندما تكون R = 1 تكون النتيجة التي تحصل عليها هي الراديان. لذلك أحسب y لخطوط العرض العلوية والسفلية.

بعد ذلك ، أحسب نفس الراديان إذا كان الإسقاط متساويًا - فأنا ببساطة بحاجة إلى تحويل خط العرض العلوي والسفلي إلى راديان. وأخيرًا - أريد فقط العثور على نسبة العرض إلى الارتفاع للاختلافات:

var scale = (mercatorLatitudeToY (topLatitude) - mercatorLatitudeToY (bottomLatitude)) / (degreesToRadians (topLatitude) - degreesToRadians (bottomLatitude)) ؛

بالنسبة للخريطة بدون القارة القطبية الجنوبية ، تكون نسبة العرض إلى الارتفاع ~ 1.5


شاهد الفيديو: مساحة مستوية: مقياس رسم شبكي يقيس قصبات