هذه حزمة Golang للترجمة بين مراجع شبكة Ordnance Survey (OS) وخط العرض / الطول. يتم استخدام مراجع OS Grid بشكل تقليدي في الملاحة في المملكة المتحدة، بينما يتم استخدام خطوط العرض / الطول في أنظمة GPS وأنظمة رسم الخرائط العالمية.
هذه الحزمة عبارة عن ترجمة جزئية إلى Golang لمكتبة Javascript الممتازة التي كتبها Chris Venes.
gridRef , err := ParseOsGridRef ( "SW 46760 28548" )
if err != nil {
panic ( err )
}
lat , lon := gridRef . ToLatLon ()
fmt . Printf ( "%.4f,%.4f n " , lat , lon ) // 50.1029,-5.5428
توجد أمثلة أكثر تفصيلاً على pkg.go.dev، أو جربها في Go Playground.
أنتجت هيئة المسح خرائط لبريطانيا العظمى منذ عام 1791. وهي تستخدم نظام الشبكة الوطنية، الذي يختلف عن خطوط الطول والعرض، حيث تتكون مراجع الشبكة من حرفين وسلسلة من الأرقام، مثل "SK127836".
توجد مراجع شبكة نظام التشغيل في كل مكان في الأماكن الخارجية الرائعة - تستخدمها الكتب الإرشادية لإخبارك بمكان ركن السيارة، وتستخدمها طرق المشي لمسافات طويلة، وإذا واجهت مشكلة، فإن فريق Mountain Rescue المحلي سيرغب في معرفة الموقع كمرجع لشبكة نظام التشغيل . ومع ذلك، فإن شبكة نظام التشغيل ذات صلة فقط في بريطانيا العظمى؛ تستخدم معظم أنظمة رسم الخرائط الإلكترونية والعالمية بدلاً من ذلك خطي العرض وخط الطول، كما هو الحال، على سبيل المثال، في عنوان URL لخرائط Google هذا.
لذلك في بعض الأحيان يكون من الضروري التحويل بين مراجع شبكة نظام التشغيل ومراجع خطوط الطول/العرض. يمكن استخدام مكتبة Golang لإجراء التحويل.
التمثيل العادي الذي يمكن قراءته بواسطة الإنسان هو حرفين متبوعين بمجموعتين من الأرقام، على سبيل المثال SZ 644 874
. يحدد الحرفان مساحة 100 كيلومتر في 100 كيلومتر، كما هو موضح في الرسم البياني الموجود على اليمين. المجموعة الأولى من الأرقام هي eastings
والثانية هي northings
. تحدد هذه الأرقام الإحداثيات داخل مربع 100 كيلومتر.
التدوين البديل هو حذف أحرف الشبكة وتوفير اتجاه easting
northing
فقط مفصولاً بفاصلة. في هذه الحالة، تكون هذه الإحداثيات نسبة إلى أصل الشبكة ككل، أي نسبة إلى الزاوية الجنوبية الغربية للشبكة.
لقد أنشأت Ordnance Survey دليلاً سهلاً يحتوي على التفاصيل الكاملة.
يمكن لهذه المكتبة تحليل وعرض كلا النوعين من التمثيل.
انه صعب. صعب للغاية. صفحات من هذا النوع من الأشياء:
(مقتطف من الصفحة 50 من الدليل المرجعي لمسح الذخائر)
لحسن الحظ، قام كريس فينيس بالفعل بالعمل الشاق لتنفيذ ذلك في مكتبة جافا سكريبت الخاصة به (والتي تقوم بما هو أكثر بكثير من مجرد تحويل مرجع الشبكة من وإلى خطوط العرض/خط الطول). هذه الحزمة عبارة عن ترجمة ميكانيكية إلى حد ما لجافا سكريبت إلى Golang، دون فهم كيفية عملها.
يسعدني أن أقول إنني لا أفهم الرياضيات وراء أي من هذا.
وهذا متعمد لتسهيل التحقق من هذا التنفيذ مقابل تطبيق Javascript الأصلي. حيثما أمكن، يجب أن يتطابق كل سطر من التعليمات البرمجية الأولية مع سطر مكافئ في كود Golang.