이것은 Geouk의 포트입니다. 프로젝트를 .NET 표준으로 변환하기 위해이 포트를 만들었습니다.
오리지널 저자는 위도와 경도를 C#의 영국 국립 그리드로 변환하는 방법을 사용하는 방법을 자세히 설명하는 블로그 게시물을 만들었습니다. 사용 된 개념을 더 잘 이해하려면이 기사를 읽으십시오.
팁 : 위치와 함께 작업 할 때이 웹 사이트를 사용하고 싶습니다 - 그리드 참조 찾기
이 프로젝트를 통해 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 ) ; 병기 조사 맵에 사용 된지도 참조 (Easting/Northing)는 500km 제곱으로 나뉘며 100km 정사각형으로 구분됩니다. 이 제곱에는 두 글자 코드가 제공됩니다. 첫 번째 문자는 500km 정사각형을 나타내고 두 번째 문자는 그 안에 100km 정사각형을 나타냅니다. 6 자리 맵 참조는 TL123456과 같은 것처럼 보일 것입니다. 여기서 첫 번째 두 문자는 맵에 표시된 것처럼 100km 정사각형을 나타내며, 여섯 가지의 첫 3 자리 숫자는 Easting을 나타내고 Northing을 나타내는 마지막 3 자리는 마지막 3 자리입니다. 이 시스템을 사용한다는 것은 MAP 참조가 광장의 원점에서 Easting/Northing (미터)으로 인용 함을 의미합니다. 위에서 설명한 변환에서 반환 된 EastingNorthing 좌표 객체는 다음과 같이 OSGB36 클래스를 사용하여 OS 맵 참조로 변환 할 수 있습니다.
EastingNorthing eastingNorthing = new EastingNorthing ( 319267 , 175189 ) ;
Osgb36 osgb36EN = new Osgb36 ( eastingNorthing ) ;
string mapReference = osgb36EN . MapReference ; ETRS89 (WGS84)를 영국 국가 그리드로 변환 할 때 더 큰 정확도를 얻으려면 Ordnance Survey Geoid Model (OSGM02)을 사용해야합니다. OSGM02는 영국, 북 아일랜드 및 아일랜드 공화국을 덮는 대형 고무 시트로 생각할 수 있습니다. ETRS89 및 OSGB36으로부터 변환하기 위해 OSGM02 내의 데이터에 특수 변환이 적용된다. 영국의 경우 변화를 OSTN02라고합니다. 활성 GPS 네트워크 스테이션의 ETRS89 위치와 결합 된 OSTN02 변환은 OSGB36의 공식 정의를 나타내며 매우 정확한 변환을 제공 할 수 있습니다.
이 고무 시트 지오이드는 효과적으로 골수 (Geoid) 높이를 결정하는 데 사용될 수 있으며 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)에 따라 라이센스가 부여됩니다. 이것은 이전 Arthors 라이센스를 존중합니다. 여기에서 자세히 알아보십시오.