Skip to content

Instantly share code, notes, and snippets.

@bertt
Last active January 14, 2020 08:42
Show Gist options
  • Save bertt/04a3329b8b1241168db51998de2e7a6e to your computer and use it in GitHub Desktop.
Save bertt/04a3329b8b1241168db51998de2e7a6e to your computer and use it in GitHub Desktop.
4326 -> 28992 coordinate transform using proj.net
Transforms a coordinate from WGS84 (epsg:4326) to Dutch RD New (epsg:28992) using ProjNET
Dependency : https://www.nuget.org/packages/ProjNET/2.0.0
```
var csFact = new CoordinateSystemFactory();
var ctFact = new CoordinateTransformationFactory();
var wgs84 = GeographicCoordinateSystem.WGS84;
var rdm = csFact.CreateFromWkt("PROJCS[\"Amersfoort / RD New\",GEOGCS[\"Amersfoort\",DATUM[\"Amersfoort\",SPHEROID[\"Bessel 1841\",6377397.155,299.1528128,AUTHORITY[\"EPSG\",\"7004\"]],TOWGS84[565.4171,50.3319,465.5524,-0.398957,0.343988,-1.87740,4.0725],AUTHORITY[\"EPSG\",\"6289\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4289\"]],PROJECTION[\"Oblique_Stereographic\"],PARAMETER[\"latitude_of_origin\",52.15616055555555],PARAMETER[\"central_meridian\",5.38763888888889],PARAMETER[\"scale_factor\",0.9999079],PARAMETER[\"false_easting\",155000],PARAMETER[\"false_northing\",463000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"X\",EAST],AXIS[\"Y\",NORTH],AUTHORITY[\"EPSG\",\"28992\"]]");
var trans = ctFact.CreateFromCoordinateSystems(wgs84, rdm);
var wgsCoord = new double[] { 4.3593204, 52.0088095 };
var rdmCoord = trans.MathTransform.Transform(wgsCoord);
Console.WriteLine("wgs ({0:#.####}, {1:#.####}) => rdm ({2:#}, {3:#})", wgsCoord[0], wgsCoord[1], rdmCoord[0], rdmCoord[1]);
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment