2016-07-06 2 views
0

ETRS89 형식의 많은 양의 좌표를 WGS84 Lat Long으로 변환해야합니다.좌표 ETRS89/LCC를 WGS84 위도로 변환

내가 아는 한 ETRS89와 WGS84는 거의 동일하지만 완전히 다른 값을 가지고 있습니다.

빙지도의 경우 WGS84 좌표가 필요합니다.

이 문제에 대한 C#에서 간단한 해결책을 제시하면 좋을 것입니다.

당신에게 많은 :

답변

0

같은 변화를위한 첫 번째 선택은 Proj4 프로젝트입니다 감사합니다. 사용할 수있는 포트가 여러 개 있습니다 (예 : 등 자바 (Java Proj.4), 자바 스크립트 (Proj4js), .NET (Proj4Net)에 도구 cs2cs.exe 좌표를 변환하는 데 사용됩니다

명령 줄 명령은 다음과 같이 될 것이다 :

cs2cs +init=epsg:3034 +to +init=epsg:4326 {name of your text-file containing massive amount of coordinates} 

인 경우

cs2cs +proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs 
    +to +proj=longlat +datum=WGS84 +no_defs {name of your text-file containing massive amount of coordinates} 

에 해당 당신은 C#을 내 개인 즐겨 찾기 DotSpatial.ProjectionsProjApi (파일 csharp-4.7.0.zip)이다 선호

DotSpatial에 대한 16,

예 :

var src = new Projection(@"+proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4000000 +y_0=2800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"), 
var dst = new Projection(@"+proj=longlat +datum=WGS84 +no_defs")) 

double[] x = { -116, -117, -118, -119, -120, -121 }; 
double[] y = { 34, 35, 36, 37, 38, 39 }; 
double[] z = { 0, 10, 20, 30, 40, 50 }; 

Projection.Transform(src, dst, x, y); 
: Proj를-API와

double[] xy = new double[2]; 
xy[0] = 12345; 
xy[1] = 67890; 
double[] z = new double[1]; 
z[0] = 1; 
ProjectionInfo pStart = KnownCoordinateSystems.Projected.Europe.ETRS1989LCC; 
ProjectionInfo pEnd = KnownCoordinateSystems.Geographic.World.WGS1984; 
Reproject.ReprojectPoints(xy, z, pStart, pEnd, 0, 1);