2010-11-30 3 views

답변

13

저는 영국 OSGB 동쪽 및 북쪽을 의미한다고 가정합니다. 이 뒤에있는 삼각법은 재미 있습니다 만, JCoord 라이브러리를 사용하면 쉽게 (CPU를 많이 사용하는 경우) 쉽게 처리 할 수 ​​있습니다.


는 당신이/롱 LAT하는 Y 좌표/X 좌표 변환 할 때 정확한 자료를 사용하고 있는지 확인해야 JCoord있는 잡았다가, 아래 @의 DD의 의견을 후속, 그리고 그 반대합니다 그 반대.

를 적어 @의 DD의 코드 :

LatLng latLng = new OSRef(394251,806376).toLatLng(); 

이것은 OSGB36 데이텀을 사용하는 위도/경도, 영국지도에 사용 즉 "평평한 지구"근사치를 반환합니다. 이것은 세계를 구체 (다소간)로 모델링하는 대부분의 애플리케이션 (Streetmap 포함)에서 사용되는 WSG84 데이터와는 실질적으로 다릅니다. WGS84 위도로 변환하기 위해

은/긴, 당신은 명시 적으로 만들 필요가 :

LatLng latLng = new OSRef(394251,806376).toLatLng(); 
latLng.toWGS84(); 

이 올바른 데이텀 위도 길이를 조정합니다. OsRef.toLatLng()에 대한 javadoc 이것에 대해 매우 분명하다 것을

참고 :

변환하려면 OSGB36 데이텀을 사용하여 위도/경도 쌍이 OSGB 그리드 참조. LatLng 개체는 응용 프로그램에 따라 WGS84 데이터로 변환해야 할 수도 있습니다.

좌표 데이터 간의 변환은 간단하지 않습니다. 단순 해 보이면 잘못했을 가능성이 큽니다.

+0

JCoord는 시간 낭비였습니다 ... 정확도는 끔찍합니다. 나는 이것을 다른 여러 온라인 도구와 비교해 보았는데 30 세가 넘었습니다. –

+1

@DD : 오히려 도움이되지 않는 말로 남겨 두거나 유용한 정보를 제공하겠습니까? – skaffman

+0

@skaffman 그 사고는 ... 누를 수있는 캐리지 리턴이고 그것은 코멘트를 입력 .... 나는이 라이브러리와 시간을 낭비하는 사람을 원하지 ... 그 정확하고 그것으로 몇 시간을 낭비했습니다. –

3

해보십시오 GeoTools :

 CRSAuthorityFactory crsFac = ReferencingFactoryFinder 
    .getCRSAuthorityFactory("EPSG", null); 

    CoordinateReferenceSystem wgs84crs = crsFac 
      .createCoordinateReferenceSystem("4326"); 
    CoordinateReferenceSystem osgbCrs = crsFac 
      .createCoordinateReferenceSystem("27700"); 

    CoordinateOperation op = new DefaultCoordinateOperationFactory() 
      .createOperation(osgbCrs, wgs84crs); 

    DirectPosition eastNorth = new GeneralDirectPosition(easting, northing); 
    DirectPosition latLng = op.getMathTransform().transform(eastNorth, 
      eastNorth); 


    double latitude=latLng.getOrdinate(0); 
    double longitude=latLng.getOrdinate(1); 

<dependency> 
     <groupId>org.geotools</groupId> 
     <artifactId>gt-main</artifactId> 
     <version>${geotools.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.geotools</groupId> 
     <artifactId>gt-epsg-hsql</artifactId> 
     <version>${geotools.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.geotools</groupId> 
     <artifactId>gt-xml</artifactId> 
     <version>${geotools.version}</version> 
    </dependency> 
+0

나는 이것이 오래되었다는 것을 압니다 만, 묻는 사람이 찾고 있던 것과는 정반대의 의미입니다.그리고 다른 곳에서 답변을 얻으려면 [인용] (http://ageeksnotes.blogspot.co.uk/2010/09/convert-easting-northing-to-latitude.html)을 참조하십시오. – ozliftoff

관련 문제