[fdo-internals] Patch for #844: SQL Server provider flipping X/Y coordinates for geometry (SRID between 4120 and 4999)

Dan Stoica dan.stoica at autodesk.com
Tue Aug 14 09:05:47 PDT 2012


Nice finding, Romy. Thanks. I've missed to notice that in the snippet Jackie provided the table was created with a 'geometry' column.

I believe it's an user error not to use 'geography' type for lat/long. I didn't investigate, but is it possible to change the column type for an existing table?

-----Original Message-----
From: fdo-internals-bounces at lists.osgeo.org [mailto:fdo-internals-bounces at lists.osgeo.org] On Behalf Of Romica Dascalescu
Sent: Tuesday, August 14, 2012 11:39 AM
To: FDO Internals Mail List
Subject: Re: [fdo-internals] Patch for #844: SQL Server provider flipping X/Y coordinates for geometry (SRID between 4120 and 4999)

Hi Jackie,

I had a look in the code and you are right there is a problem, however the patch you provided will fix your issue but will break the geography.
The geometry convertor it works as it should for geography columns (it must switch X with Y), however for geometry properties with SRID between 4120 and 4999 will not (in geometry case there should not be any switch).
This happens mainly because the convertor will use SRID to "detect" it's a geometry or a geography column.

I will provide the right fix in the following days: we need to detect if a geometry column is geography or geometry and use that flag instead of the SRID. So we need additional methods in odbc interface to inform the geometry convertor we have lat-long or X-Y.

Thanks,
Romy.
________________________________________
From: fdo-internals-bounces at lists.osgeo.org [fdo-internals-bounces at lists.osgeo.org] on behalf of Jackie Ng [jumpinjackie at gmail.com]
Sent: Tuesday, August 14, 2012 12:10 AM
To: fdo-internals at lists.osgeo.org
Subject: [fdo-internals] Patch for #844: SQL Server provider flipping X/Y coordinates for geometry (SRID between 4120 and 4999)

Hi All,

The SQL Server provider for FDO 3.7 introduced some new MS <-> FDO geometry format conversion code to GenericRdbms/Geometry/Fgf/AllGeometry_c.cpp that flips the X and Y coordinates of any geometry based on whether the given geometry SRID is lat-long based (SRID is between 4120 and 4999 inclusive).

We've been getting reported problems about such SQL Server geometries being rendered incorrectly in all products that use the FDO 3.7 version of the
provider:

 - MapGuide Open Source 2.4 RC1
 - Autodesk Infrastructure Map Server 2013
 - AutoCAD Map3D 2013

Thread(s):

 1.
http://osgeo-org.1560.n6.nabble.com/MGOS-SQLexpress-coordinate-flip-td4993496.html
 2.
http://forums.autodesk.com/t5/Autodesk-MapGuide-Enterprise/SQL-SERVER-SPATIAL-COORDINATES-FLIP/td-p/3576282

I've attached a patch to ticket #844 that basically disables such coordinate flipping. SQL Server geometries in the applicable SRID range (4120 - 4999) now render properly with this patch applied.

Please review. I do not know why there was a need to flip coordinates for these SRIDs in the provider, but whatever motivation there was for introducing this behaviour, it has resulted in this show-stopper of an issue.

- Jackie



--
View this message in context: http://osgeo-org.1560.n6.nabble.com/Patch-for-844-SQL-Server-provider-flipping-X-Y-coordinates-for-geometry-SRID-between-4120-and-4999-tp4995010.html
Sent from the FDO Internals mailing list archive at Nabble.com.
_______________________________________________
fdo-internals mailing list
fdo-internals at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/fdo-internals
_______________________________________________
fdo-internals mailing list
fdo-internals at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/fdo-internals


More information about the fdo-internals mailing list