C'est le port de Geouk. J'ai créé ce port pour convertir le projet en standard .NET
Les auteurs originaux ont créé un article de blog détaillant comment utiliser les deux packages NuGet - convertissant la latitude et la longitude en grille nationale britannique en C #. Veuillez aller lire cet article pour mieux comprendre les concepts utilisés.
Conseil: lorsque je travaille avec des emplacements, j'aime utiliser ce site Web - Finder de référence de grille
Le projet permet une conversion des coordonnées GPS à la grille nationale britannique et vice-versa. Le produit est autorisé en vertu de la licence publique générale GNU Unser-General (LGPL).
Le projet Geouk.ostn, ajoute la transformation OSTN02 et OSTN15 qui fournit une plus grande précision. Il convient de noter que le présent package contient les transformations OSGM02 Geoid et OSTN02 OSTN15, en conséquence, les transformations sont en outre plus lentes que d'utiliser les transformations de Helmert telles qu'elles sont utilisées dans la nuget ci-dessus. Le produit est autorisé en vertu de la licence publique générale GNU Unser-General (LGPL).
Installer 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 ) ; Les références de carte (Easting / Northing) utilisées dans les cartes d'enquête d'Ordnance sont divisées en carrés de 500 km qui sont subdivisés en carrés de 100 km. Ces carrés reçoivent un code de deux lettres. La première lettre représente le carré de 500 km et la seconde représente le carré de 100 km à l'intérieur. Une référence de carte à six chiffres ressemblerait à quelque chose comme TL123456 où les deux premiers caractères représentent le carré de 100 km comme indiqué sur la carte avec les trois premiers chiffres des six représentant l'Easting et les trois derniers chiffres représentant le Northing. L'utilisation de ce système signifie qu'une référence de carte est citée comme un Easting / Northing (en mètres) à partir de l'origine du carré. Un objet de coordonnées EastingNoithing, tel que renvoyé de la transformation décrite ci-dessus, peut être converti en référence de carte du système d'exploitation en utilisant la classe OSGB36 comme suit:
EastingNorthing eastingNorthing = new EastingNorthing ( 319267 , 175189 ) ;
Osgb36 osgb36EN = new Osgb36 ( eastingNorthing ) ;
string mapReference = osgb36EN . MapReference ; Afin d'obtenir une plus grande précision lors de la transformation des coordonnées ETRS89 (WGS84) en grille nationale britannique, le modèle géoïde de l'Ordnance Survey (OSGM02) doit être utilisé. L'OSGM02 peut être considéré comme une grande feuille de caoutchouc couvrant la Grande-Bretagne, l'île du Nord et la République d'Irlande. Des transformations spéciales sont appliquées aux données du OSGM02 pour se transformer de ETRS89 et OSGB36. Pour la Grande-Bretagne, la transformation est appelée OSTN02. Les transformations OSTN02 combinées avec les positions ETRS89 des stations de réseau GPS actives représentent la définition officielle d'OSGB36 et peuvent donner des transformations très précises.
Ce géoïde en tôle en caoutchouc est effectivement une table de recherche qui peut être utilisée pour déterminer les hauteurs othométriques (géoïdes) et, via la transformation OSTN, les coordonnées précises d'escliste et de nord. Il convient de noter que l'île du Nord et la République d'Irlande utilisent le même modèle géoïde mais avec une transformation différente (OSI / OSNI) qui, pour l'instant, est en dehors de la portée de cet article.
Le package Geouk.ostn Nuget étend le package Geouk pour inclure la fonctionnalité OSGM02 / OSTN0 et OSTN15 et fournit une méthode simple pour effectuer une transformation unidirectionnelle précise de ETRS89 à BNG. Le package peut être ajouté à un projet à l'aide de la commande Package Manager suivante. Le package dépend du package Geouk et l'ajoutera selon les besoins.
Installer geouk.ostn
Il convient de noter que le package GeoUK.OSTN contient les transformations OSGM02 Geoid et OSTN02 OSTN15, en conséquence, les transformations sont en outre plus grandes que l'utilisation des transformations de Helmert comme utilisés dans les exemples ci-dessus.
L'exemple ci-dessous convertit une hauteur de latitude / longitude / ellipsoïde ETRS89 en EAST et nord et hauteur ODN à moins de 10 centimètres.
LatitudeLongitude latLong = new LatitudeLongitude ( 51.469886 , - 3.1636964 , 108.05 ) ;
Osgb36 bng = GeoUK . OSTN . Transform . Etrs89ToOsgb ( latLong ) ;Les deux forfaits NUGET sont concédés sous licence GNU Unser General Public Licence (LGPL). Cela pour respecter la précédente licence Arthors. Apprenez-en plus ici.