[postgis-tickets] [PostGIS] #3361: gserialized_from_lwgeom takes is_geodetic arg but does nothing with it, geography_serialize may give you a geometry if not careful
PostGIS
trac at osgeo.org
Sun Nov 8 09:13:18 PST 2015
#3361: gserialized_from_lwgeom takes is_geodetic arg but does nothing with it,
geography_serialize may give you a geometry if not careful
---------------------+---------------------------
Reporter: robe | Owner: pramsey
Type: defect | Status: new
Priority: medium | Milestone: PostGIS 2.3.0
Component: postgis | Version: trunk
Keywords: |
---------------------+---------------------------
This is not so much a bug as a change the code to keep my sanity and so
that other developers don't fall into a wtf trap.
In hoping threw the wonderland of gserialized I ended up in the rabbit
hole of
gserialized_from_lwgeom(LWGEOM * geom,int is_geodetic, size_t * size )
in g_serialized c.
http://postgis.net/docs/doxygen/2.3/da/d21/g__serialized_8c_a0b9fd37dce2089c4fecb8a23ed102323.html#a0b9fd37dce2089c4fecb8a23ed102323
All roads from geometry and geography eventually lead to this function,
and I was puzzled why every call would both do a
lwgeom_set_geodetic(lwgeom, true);
and then still pass along this is_geodetic bit.
On closer inspection -- that is_geodetic bit is never used, just always
ignored like some vestigial cecum that turned into a useless appendix. In
fact the internal bit in lwgeom is always used, so we should just get rid
of this argument.
I should add -- geography_serialize(lwgeom); I thought would be smart
enough to set the geodetic bit too from the name of the function as isn't
the point to get a geography serialized out of an lwgeom, nope. If you
feed in an lwgeom that is not geodetic, you end up with a gserialized that
is not geodetic also.
Anyway I'd like to change at the very least that gserialized_from_lwgeom
and changed geography_serialize to guarantee always getting back a
geography. But I would like to get some opinions before I do that. Of
course I would only do this in 2.3 and not backport.
--
Ticket URL: <https://trac.osgeo.org/postgis/ticket/3361>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list