1
我在我的數據庫中有EPSG 3857格式的座標列表。 我需要將它們轉換爲EPSG 4326 我試圖使用DotSpatial,但我的代碼總是重新編譯一個雙無限數組。將座標從EPSG 3857轉換爲4326 DotSpatial
public double[] ConvertCoodinates()
{
double[] xy = new double[2];
xy[0] = 5085240.8300000000;
xy[1] = 1530088.9600000000;
//An array for the z coordinate
double[] z = new double[1];
z[0] = 0;
ProjectionInfo pStart = KnownCoordinateSystems.Geographic.World.WGS1984;
pStart.AuthorityCode = 3857;
ProjectionInfo pEnd = KnownCoordinateSystems.Geographic.World.WGS1984;
pEnd.AuthorityCode = 4326;
Reproject.ReprojectPoints(xy, z, pStart, pEnd, 0, 1);
return xy;
}
xy數組總是合計無窮大; 有人可以幫我嗎?
你能幫助我從4326轉換回3857嗎? – ABH
@ABH您需要使用反轉公式來計算座標。 在c#中將會是 'private double [] ConvertCoordinate(double lat,double lng) { double x = lng * 20037508.34/180; (Math.Tan((90 + lat)* Math.PI/360))/(Math.PI/180); y = y * 20037508.34/180; 返回新的double [] {x,y}; }' –