Ini adalah pelabuhan dari Geouk. Saya membuat port ini untuk mengonversi proyek menjadi standar .net
Penulis asli telah membuat posting blog yang merinci cara menggunakan kedua paket Nuget - mengonversi garis lintang dan bujur ke British National Grid di C#. Silakan pergi dan baca artikel ini untuk mendapatkan pemahaman yang lebih baik tentang konsep yang digunakan.
Kiat: Saat bekerja dengan lokasi saya suka menggunakan situs web ini - Finder Referensi Grid
Proyek ini memungkinkan konversi dari koordinat GPS ke Grid Nasional Inggris dan kembali lagi. Produk ini dilisensikan di bawah GNU Lesser General Public License (LGPL).
Proyek geouk.ostn, menambahkan transformasi OSTN02 dan OSTN15 yang memberikan akurasi yang lebih besar. Perlu dicatat bahwa paket ini berisi transformasi OSGM02 Geoid dan OSTN02 OSTN15, sebagai hasilnya cukup besar, selain itu, transformasi akan lebih lambat daripada menggunakan transformasi Helmert seperti yang digunakan dalam nuget di atas. Produk ini dilisensikan di bawah GNU Lesser General Public License (LGPL).
Instal 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 ) ; Referensi peta (Easting/Northing) yang digunakan dalam peta survei persenjataan dibagi menjadi kuadrat 500 km yang dibagi lagi menjadi kotak 100 km. Kotak -kotak ini diberi kode dua huruf. Huruf pertama mewakili persegi 500 km dan yang kedua mewakili persegi 100 km di dalamnya. Referensi peta enam digit akan terlihat seperti TL123456 di mana dua karakter pertama mewakili persegi 100 km seperti yang ditunjukkan pada peta dengan tiga digit pertama dari enam yang mewakili Easting dan tiga digit terakhir yang mewakili norshing. Menggunakan sistem ini berarti bahwa referensi peta dikutip sebagai Easting/Northing (dalam meter) dari asal kuadrat. Objek koordinat eastingnorthing, seperti yang dikembalikan dari transformasi yang dijelaskan di atas, dapat dikonversi ke referensi peta OS dengan menggunakan kelas OSGB36 sebagai berikut:
EastingNorthing eastingNorthing = new EastingNorthing ( 319267 , 175189 ) ;
Osgb36 osgb36EN = new Osgb36 ( eastingNorthing ) ;
string mapReference = osgb36EN . MapReference ; Untuk mendapatkan akurasi yang lebih besar saat mengubah koordinat ETRS89 (WGS84) ke Grid Nasional Inggris, model Geoid Survei Ordnance (OSGM02) perlu digunakan. OSGM02 dapat dianggap sebagai lembaran karet besar yang menutupi Inggris Raya, Pulau Utara dan Republik Irlandia. Transformasi khusus diterapkan pada data dalam OSGM02 untuk berubah dari ETRS89 dan OSGB36. Untuk Inggris Raya, transformasi disebut OSTN02. Transformasi OSTN02 yang dikombinasikan dengan posisi ETRS89 dari stasiun jaringan GPS aktif mewakili definisi resmi OSGB36 dan dapat memberikan transformasi yang sangat akurat.
Geoid lembaran karet ini secara efektif merupakan tabel pencarian yang dapat digunakan untuk menentukan ketinggian othometrik (geoid) dan, melalui transformasi OSTN, koordinat easting yang akurat dan koordinat north. Perlu dicatat bahwa Pulau Utara dan Republik Irlandia menggunakan model geoid yang sama tetapi dengan transformasi yang berbeda (OSI/OSNI) yang, setidaknya untuk saat ini, berada di luar ruang lingkup artikel ini.
Paket Geouk.ostn Nuget memperluas paket geouk untuk memasukkan fungsionalitas OSGM02/OSTN0 dan OSTN15 dan menyediakan metode sederhana untuk membuat transformasi satu arah yang akurat dari ETRS89 ke BNG. Paket dapat ditambahkan ke proyek menggunakan perintah Paket Manajer berikut. Paket tergantung pada paket Geouk dan akan menambahkannya sesuai kebutuhan.
Instal geouk.ostn
Perlu dicatat bahwa paket GeoUK.OSTN berisi transformasi OSGM02 Geoid dan OSTN02 OSTN15, sebagai hasilnya cukup besar, di samping itu, transformasi akan lebih lambat daripada menggunakan transformasi Helmert seperti yang digunakan dalam contoh di atas.
Contoh di bawah ini mengkonversi ETRS89 Latitude/Longitude/Ellipsoid Tinggi ke BNG Easting dan Northing dan ODN Height hingga sekitar 10 sentimeter atau lebih.
LatitudeLongitude latLong = new LatitudeLongitude ( 51.469886 , - 3.1636964 , 108.05 ) ;
Osgb36 bng = GeoUK . OSTN . Transform . Etrs89ToOsgb ( latLong ) ;Kedua paket Nuget dilisensikan di bawah GNU Lesser General Public License (LGPL). Ini untuk menghormati lisensi Arthors sebelumnya. Pelajari lebih lanjut di sini.