Subscribe to this thread
Home - Cutting Edge / All posts - EPSG28992 implementation correct?
JoeyD30 post(s)
#11-Nov-22 18:49

I mapped the following geopackage (agricultural fields in NL) on top of a satellite image:

I noticed a considerable offset against the satellite image, both Bing and Google. Then I did exactly the same thing with QGIS (see images attached, location: 52.98931271°N, 5.86761394°E) and in QGIS the mapping seems to fit well.

I tried with maps in both coordinate systems of the data sources: EPSG3857 (coordinate system of satellite imagery) and EPSG28992 (coordinate system of the dutch data): same result, Manifold projects the dutch data with an offset of maybe 10 meters east and maybe 1m south.

Does anybody have an idea what the reason might be?


10,017 post(s)
#11-Nov-22 19:55

Maybe this will ring a bell with somebody who uses similar data, or has seen a similar problem.

Otherwise, the most important thing will be to describe exactly what you did to get the result you see.

Starting with "Open a new blank project in Manifold 9..." and then listing every operation, including menus, dialogs and all settings.

If you liked you could do the same for the workflow in QGIS, but that might be unnecessary.

(For obvious reasons it can't be true that you "did exactly the same thing with QGIS" as with Manifold.)

JoeyD30 post(s)
#11-Nov-22 21:01

Open Manifold

Import the downloaded gpkg-file (link see above)

Create map with Google maps satellite and the drawing brp_gewas.geom, the only drawing in the above geopackage, no change of the default coordinate system (I tried generating a second map with the same layers but coordinate system EPSG28992)

Open map and zoom in: be surprised, take screenshot

And in QGIS

Open QGIS 3.28

right click on XYZ-tiles and connect to{x}&y={y}&z={z} under the name Google sattellite

drop Google satellite into map

right click on GeoPackage and connect to the downloaded gpkg-file

drop brp_gewas into map, click OK

Zoom in to same place as in Manifold: take screenshot

I hope this helps.


612 post(s)
#11-Nov-22 23:11

Use this projection:

{ "Accuracy": 0.5, "Axes": "XY", "Base": "Amersfoort (EPSG:4289)", "CenterLat": 52.15616055555555, "CenterLon": 5.38763888888889, "CenterX": 593.032, "CenterY": 26, "CenterZ": 478.741, "Eccentricity": 0.08169683122252751, "FalseEasting": 155000, "FalseNorthing": 463000, "MajorAxis": 6377397.155, "Name": "Amersfoort \/ RD New (EPSG:28992)", "Rect": [ 3.2, 50.75, 7.22, 53.7 ], "RotationCenterX": 3903453.148, "RotationCenterY": 368135.313, "RotationCenterZ": 5012970.306, "RotationX": 0.0001137206631775658, "RotationY": -0.00009991810989286426, "RotationZ": 0.0005190252778751589, "ScaleAdjustment": 4.0772, "ScaleX": 0.9999079, "ScaleY": 0.9999079, "System": "Oblique Stereographic", "Transform": "Molodensky-Badekas", "Unit": "Meter", "UnitScale": 1, "UnitShort": "m" }

instead of

{ "Accuracy": 1, "Axes": "XY", "Base": "Amersfoort (EPSG:4289)", "CenterLat": 52.15616055555555, "CenterLon": 5.38763888888889, "CenterX": 593.16, "CenterY": 26.15, "CenterZ": 478.54, "Eccentricity": 0.08169683122252751, "FalseEasting": 155000, "FalseNorthing": 463000, "MajorAxis": 6377397.155, "Name": "Amersfoort \/ RD New (EPSG:28992)", "Rect": [ 3.2, 50.75, 7.22, 53.7 ], "RotationX": 0.0003623327800627813, "RotationY": 0.00002869372638015163, "RotationZ": 0.0003179170917842399, "ScaleAdjustment": 4.0775, "ScaleX": 0.9999079, "ScaleY": 0.9999079, "System": "Oblique Stereographic", "Transform": "Molodensky-Badekas", "Unit": "Meter", "UnitScale": 1, "UnitShort": "m" }


7,115 post(s)
#12-Nov-22 05:22

Very interesting. Sloots, why do you think the different values for the base center x and y, and how did you know to make those modifications?

I could be wrong about this, but it seems that Manifold should be taking the EPSG base values from the EPSG database, so somewhere something is not right. It's important to find where the difference comes in.


612 post(s)
#12-Nov-22 07:47



10,239 post(s)
#13-Nov-22 15:30

I checked why we are mapping EPSG:28992 to the second JSON while you say the first works better on your data, here's what happens:

We have EPSG:28992. It references EPSG:4289 as a base coordinate system (geogcs). The common ground for base coordinate systems in Manifold is WGS84, EPSG:4326 with siblings, so the definition of the coordinate system includes a transform from the datum of the coordinate system to WGS84. There are multiple transforms from EPSG:4289 to EPSG:4326, we choose the one with the best accuracy (actually, there are multiple transforms with the accuracy of 1, we choose the oldest of them, the reason for choosing the oldest is to only choose a new conversion path if it is claimed to be better). This is the transform in the second JSON.

It seems that you want the conversion to go not to EPSG:4326 but to EPSG:4258 = ETRS89. This is the transform in the first JSON. It is true that there are multiple conversions from EPSG:4289 to EPSG:4258, with the accuracy better than 1 (there's even an NTv2 one with a grid file and the claimed accuracy of 0.001). But that's a different datum, it isn't WGS84.

I wonder whether Google Maps actually uses ETRS89 for European regions. That would explain why the data lines up better if we pretend that the base coordinate system is ETRS89.

10,017 post(s)
#14-Nov-22 03:58

If I had a vote it would be:

Keep implementing EPSG standards faithfully, and if others “correct” their application implicitly, then let them. (I originally said something else there as you can imagine.)

Standards are (more or less) immutable or they are nothing.


612 post(s)
#14-Nov-22 06:21

I'm not against standards, but the data should align properly. An offset of a couple of meters is unacceptable in my tiny country.


10,239 post(s)
#14-Nov-22 09:25

I would certainly agree. :-)

We will check further though. Particularly why the data reportedly seems to line up in QGIS. Who knows, maybe there is something we overlooked.

JoeyD30 post(s)
#15-Nov-22 19:30

While I appreciate the discussion on the right way to address this, I want to say thanks Sloots for the fix, it apparently works (screenshot attached).

Manifold with Sloots projection.JPG

Manifold User Community Use Agreement Copyright (C) 2007-2021 Manifold Software Limited. All rights reserved.