Ini adalah paket Golang untuk menerjemahkan antara Referensi Grid Ordnance Survey (OS) dan Lintang / Bujur. Referensi OS Grid secara tradisional digunakan dalam navigasi Inggris, sedangkan lintang/bujur digunakan oleh sistem GPS dan sistem pemetaan global.
Paket ini merupakan terjemahan sebagian ke dalam Golang dari perpustakaan Javascript yang sangat bagus oleh Chris Veness.
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
Ada contoh lebih detail di pkg.go.dev, atau coba di Go Playground.
Ordnance Survey telah memproduksi peta Britania Raya sejak tahun 1791. Mereka menggunakan sistem Grid Nasional, berbeda dari garis lintang dan bujur, di mana referensi grid terdiri dari dua huruf dan rangkaian angka, seperti "SK127836".
Referensi jaringan OS ada di mana-mana di alam bebas - buku panduan menggunakannya untuk memberi tahu Anda di mana harus memarkir mobil, rute hiking menggunakannya, dan jika Anda mendapat masalah, tim Penyelamat Gunung setempat ingin mengetahui lokasi tersebut sebagai referensi jaringan OS . Namun, jaringan OS hanya relevan di Inggris Raya; sebagian besar sistem pemetaan elektronik dan global menggunakan Lintang dan Bujur, seperti misalnya pada URL Google Maps ini.
Jadi terkadang perlu untuk mengkonversi antara referensi grid OS dan referensi lintang/bujur. Library Golang ini dapat digunakan untuk melakukan konversi.
Representasi normal yang dapat dibaca manusia adalah dua huruf diikuti oleh dua kelompok angka, misalnya SZ 644 874
. Kedua huruf tersebut mendefinisikan persegi berukuran 100 km kali 100 km, seperti pada diagram di sebelah kanan. Kelompok angka pertama adalah eastings
dan yang kedua adalah northings
; angka-angka ini menentukan koordinat dalam 100 km persegi.
Notasi alternatifnya adalah menghilangkan huruf grid dan hanya memberikan tanda easting
dan northing
yang dipisahkan dengan koma. Dalam hal ini adalah koordinat relatif terhadap asal grid secara keseluruhan, yaitu relatif terhadap sudut barat daya dari grid.
Ordnance Survey telah membuat panduan ramah dengan rincian lengkap.
Pustaka ini dapat mengurai dan menampilkan kedua jenis representasi.
Itu sulit. Sangat, sangat sulit. Halaman-halaman seperti ini:
(kutipan dari halaman 50 panduan referensi Ordnance Survey)
Untungnya Chris Veness telah bekerja keras untuk mengimplementasikan ini di perpustakaan Javascript miliknya (yang melakukan lebih dari sekedar mengubah referensi grid ke dan dari lintang/bujur). Paket ini merupakan terjemahan Javascript ke Golang yang cukup mekanis, tanpa memahami cara kerjanya.
Saya senang untuk mengatakan bahwa saya tidak memahami matematika di balik semua ini.
Hal ini disengaja, untuk memudahkan verifikasi implementasi ini terhadap implementasi Javascript asli. Jika memungkinkan, setiap baris kode upstream harus cocok dengan baris yang setara dalam kode Golang.