[gdal-dev] Problem with coordinate transformation

Philippe Lelong lelong.ph at meltemus.com
Tue Oct 18 05:39:01 PDT 2022


Thanks very much, I would never have figured that out myself.


Just to make it clear I should add this flag on all OGRSpatialReference or only when it is loaded with importFromWkt ?


--Philippe


________________________________
From: gdal-dev <gdal-dev-bounces at lists.osgeo.org> on behalf of Laurențiu Nicola via gdal-dev <gdal-dev at lists.osgeo.org>
Sent: Tuesday, October 18, 2022 1:01 PM
To: gdal-dev at lists.osgeo.org
Subject: Re: [gdal-dev] Problem with coordinate transformation

Hi Philippe,

The new behaviour is correct. See https://gdal.org/development/rfc/rfc73_proj6_wkt2_srsbarn.html#axis-order-issues for the axis order issue, a change made in GDAL 3.0. You can find a solution in https://github.com/OSGeo/gdal/blob/v3.5.0/MIGRATION_GUIDE.TXT#L67 (calling SetAxisMappingStrategy(OAMS_TRADITIONAL_GIS_ORDER) on every OGRSpatialReference you use.

Laurentiu

On Tue, Oct 18, 2022, at 13:43, Philippe Lelong wrote:

Hi,


I have an app build against GDAL 3.4.1 and PROJ6, and the same app build against GDAL 2.1.3 and PROJ4. They are not giving the same result when using OGRCoordinateTransformation.


If I do



    const char *their = "GEOGCS[\"WGS 84\",DATUM[\"WGS_1984\",SPHEROID[\"WGS 84\",6378137,298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0],UNIT[\"degree\",0.0174532925199433],AUTHORITY[\"EPSG\",\"4326\"]]";

    const char *our = "+proj=longlat +datum=WGS84 +ellps=WGS84 +no_defs +over";

    double miX = -17.4042;

    double miY = 35.3333;

    OGRSpatialReference theirReference;

    theirReference.importFromWkt((char**)&their);

    OGRSpatialReference ourReference;

    ourReference.importFromProj4(our);

    OGRCoordinateTransformation *trans = OGRCreateCoordinateTransformation(&theirReference, &ourReference);

    trans->Transform(1, &miX, &miY);


in the version build against GDAL 3.4.1/PROJ6 this code results in swapping miX and miY (i.e. miX = 35.3333 and miY = -17.4042)


The version build against GDAL 2.1.3/PROJ4 leaves miX and miY unchanged, which I believe is correct.


Any explanation for this behavior and which one is correct? Would I get the same result using PROJ8 ?


Thanks in advance

Philippe Lelong



_______________________________________________
gdal-dev mailing list
gdal-dev at lists.osgeo.org<mailto:gdal-dev at lists.osgeo.org>
https://lists.osgeo.org/mailman/listinfo/gdal-dev


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20221018/9337dc88/attachment.htm>


More information about the gdal-dev mailing list