string ProjSk42 = " GEOGCS[\"Pulkovo 1942\",DATUM[\"Pulkovo_1942\",SPHEROID[\"Krassowsky 1940\",6378245,298.3,AUTHORITY[\"EPSG\",\"7024\"]],TOWGS84[23.92,-141.27,-80.9,0,0.35,0.82,-0.12],AUTHORITY[\"EPSG\",\"6284\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4284\"]]";
string ProjWgs84 = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]";
CoordinateSystemFactory qq = new CoordinateSystemFactory();
var wgs= qq.CreateFromWkt(ProjWgs84);
var sk42 = qq.CreateFromWkt(ProjSk42);
CoordinateTransformationFactory ctfac = new ();
ICoordinateTransformation trans = ctfac.CreateFromCoordinateSystems( wgs,sk42);
double[] fromPoint = { 66, 76 };
double[] toPoint = trans.MathTransform.Transform(fromPoint);
I tried many WKT strings, get them from your CSV, from epsg.io etc. Your lib uses same ProjNet classes:
let crs = _coordinateSystemFactory.CreateFromWkt(wellKnownText)
let trans: ICoordinateTransformation = ctFact.CreateFromCoordinateSystems(sourceCrs, targetCrs)
let result: double[] = trans.MathTransform.Transform(xy)
So I dont understand why ProjNet gives me bad result while crsTransformations works great. Maybe you have some ideas about it? I even checked binary content of ProjNet.dll, it's same for both cases :/ I answered this question here and got answers that ProjNet is outdated.
Also a suggestion, can you provide a feature to construct coordinateSystem from WKT ?