هذا ميناء من Geouk. لقد قمت بإنشاء هذا المنفذ لتحويل المشروع إلى .NET Standard
قام المؤلفون الأصليون بإنشاء منشور مدونة يوضح بالتفصيل كيفية استخدام كل من حزم Nuget - تحويل Latitude وعرض الطول إلى الشبكة الوطنية البريطانية في C#. يرجى الذهاب وقراءة هذا المقال للحصول على فهم أفضل للمفاهيم المستخدمة.
نصيحة: عند العمل مع المواقع ، أحب استخدام هذا الموقع - الباحث المرجعي للشبكة
يسمح المشروع بتحويل من إحداثيات GPS إلى الشبكة الوطنية البريطانية والعودة مرة أخرى. تم ترخيص المنتج بموجب ترخيص GNU Lesser General Public (LGPL).
يضيف مشروع Geouk.ostn ، التحول OSTN02 و OSTN15 الذي يوفر دقة أكبر. تجدر الإشارة إلى أن هذه الحزمة تحتوي على تحولات OSGM02 GEOID و OSTN02 OSTN15 ، ونتيجة لذلك ، ستكون التحولات كبيرة إلى حد ما ، بالإضافة إلى ذلك ، ستكون التحولات أبطأ من استخدام التحولات في Nuget أعلاه. تم ترخيص المنتج بموجب ترخيص GNU Lesser General Public (LGPL).
تثبيت geouk
// Given an easting and northing in metres (see text)
const double easting = 651409.903 ;
const double northing = 313177.270 ;
// Convert to Cartesian
Cartesian cartesian = Convert . ToCartesian ( new Airy1830 ( ) ,
new BritishNationalGrid ( ) ,
new EastingNorthing ( easting , northing ) ) ; Cartesian wgsCartesian = Transform . Osgb36ToEtrs89 ( cartesian ) ; //ETRS89 is effectively WGS84 LatitudeLongitude wgsLatLong = Convert . ToLatitudeLongitude ( new Wgs84 ( ) , wgsCartesian ) ; LatitudeLongitude latLong = new LatitudeLongitude ( 51.469886 , - 3.1636964 ) ;
Cartesian cartesian = Convert . ToCartesian ( new Wgs84 ( ) , latLong ) ;
Cartesian bngCartesian = Transform . Etrs89ToOsgb36 ( cartesian ) ;
EastingNorthing bngEN = Convert . ToEastingNorthing ( new Airy1830 ( ) , new BritishNationalGrid ( ) , bngCartesian ) ; تنقسم مراجع الخريطة (Easting/Northing) المستخدمة في خرائط مسح الذخائر إلى مربعات 500 كم والتي يتم تقسيمها إلى مربعات 100 كم. يتم إعطاء هذه المربعات رمز رسالتين. تمثل الحرف الأول مربع 500 كيلومتر والثاني يمثل مربع 100 كيلومتر داخلها. سيبدو مرجع الخريطة المكونة من ستة أرقام مثل TL123456 حيث يمثل أول حرفين مربع 100 كيلومتر كما هو موضح على الخريطة مع الأرقام الثلاثة الأولى من الستة التي تمثل العصاد والأرقام الثلاثة الأخيرة التي تمثل النورثينج. يعني استخدام هذا النظام أن مرجع الخريطة مقتبس من Easting/Northing (بالأمتار) من أصل المربع. يمكن تحويل كائن إحداثيات EastingNorthing ، كما تم إرجاعه من التحول الموضح أعلاه ، إلى مرجع MAP لنظام التشغيل باستخدام فئة OSGB36 على النحو التالي:
EastingNorthing eastingNorthing = new EastingNorthing ( 319267 , 175189 ) ;
Osgb36 osgb36EN = new Osgb36 ( eastingNorthing ) ;
string mapReference = osgb36EN . MapReference ; من أجل الحصول على دقة أكبر عند تحويل إحداثيات ETRS89 (WGS84) إلى الشبكة الوطنية البريطانية ، يجب استخدام نموذج مسح الذخائر (OSGM02). يمكن اعتبار OSGM02 عبارة عن ورقة مطاطية كبيرة تغطي بريطانيا العظمى والجزيرة الشمالية وجمهورية أيرلندا. يتم تطبيق التحولات الخاصة على البيانات داخل OSGM02 لتحويل من ETRS89 و OSGB36. لبريطانيا العظمى ، يسمى التحول OSTN02. تمثل التحولات OSTN02 مع مواقف ETRS89 لمحطات شبكة GPS النشطة التعريف الرسمي لـ OSGB36 ويمكن أن تعطي تحويلات دقيقة للغاية.
تعتبر هذه الورقة المغنية الجغرافية عبارة عن جدول بحث يمكن استخدامه لتحديد ارتفاعات أوثومترية (Geoid) ، وعبر تحول OSTN ، وإحداثيات EASTING دقيقة. تجدر الإشارة إلى أن الجزيرة الشمالية وجمهورية أيرلندا تستخدمان نفس النموذج الجيويد ولكن مع تحول مختلف (OSI/OSNI) والذي ، على الأقل على الأقل ، خارج نطاق هذه المقالة.
تمتد حزمة Geouk.ostn nuget حزمة Geouk لتشمل وظائف OSGM02/OSTN0 و OSTN15 وتوفر طريقة بسيطة لإجراء تحول دقيق في اتجاه واحد من ETRS89 إلى BNG. يمكن إضافة الحزمة إلى مشروع باستخدام أمر Manager التالي. تعتمد الحزمة على حزمة Geouk وستضيفها كما هو مطلوب.
تثبيت geouk.ostn
تجدر الإشارة إلى أن حزمة GeoUK.OSTN تحتوي على تحولات OSGM02 Geoid و OSTN02 OSTN15 ، ونتيجة لذلك ، ستكون التحولات كبيرة إلى حد ما ، وستكون التحولات أبطأ من استخدام تحويلات هيلميتز كما هو مستخدم في الأمثلة أعلاه.
يحول المثال أدناه خط عرض/خط الطول/خط الطول/الطول الإهليلجي إلى BNG Easing و Northing و ODN إلى حدود 10 سنتيمترات أو نحو ذلك.
LatitudeLongitude latLong = new LatitudeLongitude ( 51.469886 , - 3.1636964 , 108.05 ) ;
Osgb36 bng = GeoUK . OSTN . Transform . Etrs89ToOsgb ( latLong ) ;كلا حزمات Nuget مرخصة بموجب ترخيص GNU Lesser General Public (LGPL). هذا لاحترام ترخيص Arthors السابق. تعرف على المزيد هنا.