これは、陸地測量 (OS) グリッド参照と緯度/経度の間を変換する Golang パッケージです。 OS グリッド参照は伝統的に英国のナビゲーションで使用され、緯度/経度は GPS システムとグローバル マッピング システムで使用されます。
このパッケージは、Chris Veness による優れた Javascript ライブラリの Golang への部分翻訳です。
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 年から英国の地図を作成しています。緯度と経度とは異なるナショナル グリッド システムを使用しており、グリッド参照は 2 つの文字と一連の数字 (「SK127836」など) で構成されます。
OS グリッド参照は、大自然の中でどこにでもあります。ガイドブックでは車の駐車場所を示すためにそれらが使用され、ハイキング ルートでも使用されます。また、トラブルに遭遇した場合には、地元の山岳救助チームが OS グリッド参照としてその場所を知りたがります。 。ただし、OS グリッドが関係するのは英国のみです。ほとんどの電子地図システムや世界地図システムでは、代わりに緯度と経度が使用されます (たとえば、この Google マップの URL のように)。
そのため、場合によっては、OS グリッド参照と lat/lon 参照の間で変換する必要があります。この Golang ライブラリを使用して変換を実行できます。
人間が判読できる通常の表現は、2 つの文字の後に 2 つの数字グループが続くものです (例: SZ 644 874
。右の図にあるように、2 つの文字は 100 km × 100 km の正方形を定義します。最初の数字のグループはeastings
、2 番目のグループはnorthings
です。これらの数字は、100 km 四方内の座標を定義します。
別の表記法として、グリッド文字を省略し、 easting
とnorthing
カンマで区切って指定することもできます。この場合、これらはグリッド全体の原点に対する相対座標、つまりグリッドの南西隅に対する相対座標です。
Ordnance Survey は、完全な詳細を記載したフレンドリーなガイドを作成しました。
このライブラリは、両方のタイプの表現を解析して表示できます。
それは難しい。とても、とても難しい。この種の内容のページ:
(陸地測量士参考書50ページより抜粋)
幸いなことに、Chris Veness はすでにこれを Javascript ライブラリに実装するという大変な作業を行っています (グリッド参照を緯度と経度から相互に変換するだけではありません)。このパッケージは、JavaScript がどのように機能するかを理解せずに、JavaScript を Golang にかなり機械的に翻訳したものです。
私はこの背後にある数学をまったく理解していないと言えてうれしいです。
これは、この実装を元の JavaScript 実装と比較して検証しやすくするための意図的なものです。可能であれば、アップストリーム コードの各行は、Golang コードの同等の行と一致する必要があります。