У меня в моей БД список координат в формате EPSG 3857. Мне нужно преобразовать их в EPSG 4326 Я пытаюсь использовать DotSpatial, но мой код всегда перенастраивает двойной массив Infinity.Преобразование координат из 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 массив всегда cointain бесконечность; Может кто-нибудь мне помочь?
Можете ли вы помочь мне с переводом с 4326 на 3857? – ABH
@ABH Для вычисления координат вам нужно использовать инвертированную формулу. В C# это будет 'private double [] ConvertCoordinate (double lat, double lng) { double x = lng * 20037508.34/180; double y = Math.Log (Math.Tan ((90 + lat) * Math.PI/360))/(Math.PI/180); y = y * 20037508.34/180; return new double [] {x, y}; } ' –