これはGeoukのポートです。このポートを作成して、プロジェクトを.NET標準に変換しました
元の著者は、C#の緯度と経度を英国の国立グリッドに変換する方法の両方の使用方法を詳述したブログ投稿を作成しました。使用されている概念をよりよく理解するために、この記事を読んでください。
ヒント:場所で作業するときは、このウェブサイトを使用するのが好きです-Grid Reference Finder
このプロジェクトにより、GPS座標から英国の国立グリッドへの変換が可能になり、再び戻ってきます。この製品は、GNU Lesser General Public License(LGPL)の下でライセンスされています。
Geouk.ostnプロジェクトは、OSTN02とOSTN15変換を追加し、より大きな精度を提供します。このパッケージにはOSGM02 GeoidおよびOSTN02 OSTN15変換が含まれていることに注意してください。さらに、上記のNUGETで使用されるHelmert変換を使用するよりも変換が遅くなります。この製品は、GNU Lesser General Public License(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 ) ; Ordnance Surveyマップで使用されるマップ参照(掘削/Northing)は、500kmの正方形に分割され、100kmの正方形に分割されます。これらの正方形には2文字のコードが与えられます。最初の文字は500kmの正方形を表し、2番目はその中の100kmの正方形を表します。 6桁のマップリファレンスは、TL123456のように見えます。最初の2文字は、地図に示されているように100kmの正方形を表し、6の最初の3桁は発掘を表し、最後の3桁はノーチを表します。このシステムを使用すると、マップリファレンスが正方形の起源から(メートル単位)測量/northingとして引用されることを意味します。上記の変換から返されるように、EastingNorthing座標オブジェクトは、次のようにOSGB36クラスを使用してOSマップリファレンスに変換できます。
EastingNorthing eastingNorthing = new EastingNorthing ( 319267 , 175189 ) ;
Osgb36 osgb36EN = new Osgb36 ( eastingNorthing ) ;
string mapReference = osgb36EN . MapReference ; ETRS89(WGS84)を英国国立グリッドに変換する際に、より大きな精度を得るには、兵器調査ジオイドモデル(OSGM02)を使用する必要があります。 OSGM02は、イギリス、北島、アイルランド共和国を覆う大きなゴム製シートと考えることができます。 ETRS89およびOSGB36から変換するために、OSGM02内のデータに特別な変換が適用されます。英国では、変換はOSTN02と呼ばれます。 Active GPSネットワークステーションのETRS89位置と組み合わされたOSTN02変換は、OSGB36の公式定義を表し、非常に正確な変換を提供できます。
このゴム製シートジオイドは、事実上、誤った(ジオイド)高さを決定するために使用できるルックアップテーブルであり、OSTN変換を介して、正確なイーストとノーシングの座標です。北島とアイルランド共和国は同じジオイドモデルを使用しているが、少なくとも今のところこの記事の範囲外である異なる変換(OSI/OSNI)を使用していることは注目に値します。
Geouk.ostn Nugetパッケージは、GeoukパッケージをOSGM02/OSTN0およびOSTN15機能を含むように拡張し、ETRS89からBNGへの正確な一方向変換を行う簡単な方法を提供します。パッケージは、次のパッケージマネージャーコマンドを使用してプロジェクトに追加できます。パッケージはGeoukパッケージに依存しており、必要に応じて追加します。
geouk.ostnをインストールします
GeoUK.OSTNパッケージにはOSGM02 GeoidおよびOSTN02 OSTN15変換が含まれていることに注意する必要があります。その結果、上記の例で使用されるようにHelmert変換を使用するよりも変換はかなり大きくなります。
以下の例は、ETRS89の緯度/経度/楕円体の高さをBNGのイースティングと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 License(LGPL)に基づいてライセンスされています。これは、以前のアーソーズライセンスを尊重するためです。詳細はこちらをご覧ください。