NetTopologySuite конвертирует координаты в другую систему координат

Я пытаюсь преобразовать мои координаты в другую систему координат, используя NetTopologySuite. Но я не могу заставить его работать. Мое первоначальное преобразование - перейти от WGS84 к Lambert72.

Я нашел этот пример где-то в stackru, но я не могу заставить его работать:

public static double CalculateDistance(this MvxCoordinates baseLocation, double targetLat, double targetLon)
    {
        CoordinateSystemFactory csFact = new CoordinateSystemFactory();
        CoordinateTransformationFactory ctFact = new CoordinateTransformationFactory();

        ICoordinateSystem utm35ETRS = Coo.CreateFromWkt(
            "PROJCS[\"ETRS89 / ETRS-TM35\",GEOGCS[\"ETRS89\",DATUM[\"D_ETRS_1989\",SPHEROID[\"GRS_1980\",6378137,298.257222101]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",0.017453292519943295]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",27],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",0],UNIT[\"Meter\",1]]");

        IProjectedCoordinateSystem utm33 = ProjectedCoordinateSystem.WGS84_UTM(33, true);

        ICoordinateTransformation trans = ctFact.CreateFromCoordinateSystems(utm35ETRS, utm33);

        Coordinate[] points = new Coordinate[]
        {
            new Coordinate(290586.087, 6714000), new Coordinate(290586.392, 6713996.224),
            new Coordinate(290590.133, 6713973.772), new Coordinate(290594.111, 6713957.416),
            new Coordinate(290596.615, 6713943.567), new Coordinate(290596.701, 6713939.485)
        };

        //Coordinate[] tpoints = trans.MathTransform.TransformList(points).ToArray();
        //for (int i = 0; i < points.Length; i++)
        //    Assert.That(tpoints[i].Equals(trans.MathTransform.Transform(points[i])));
    }

Большая проблема с этим кодом состоит в том, что он использует ProjNET4GeoAPI, и это не совместимо с основными проектами Xamarin!

1 ответ

Решение

Последние предварительные версии ProjNet4GeoAPI теперь поддерживают цели.NET Standard 1.0 и.NET Standard 2.0.

Другие вопросы по тегам