On Mon, Jan 13, 2014 at 12:41:37PM -0800, Michael Watts wrote:
> I'm not sure if this is a PostGIS issue, a JTS issue, or an issue at all --
> but, below, JTS produces a WKB that is not parseable (via ST_GeomFromWKB)
> by Postgis -- it is the JTS wkb-representation of an empty polygon.
>
> ===============================
>
> (1) Get WKB from PostGIS
>
> gis=> select ST_GEOMFromText('POLYGON EMPTY');
> st_geomfromtext
> --------------------
> 010300000000000000
> (1 row)
>
> (2) Write to JTS, and read back.
>
> WKBWriter writer = new WKBWriter();
> WKBReader reader = new WKBReader();
>
> // 010300000000000000
> byte[] fromPostgis = {1, 3, 0, 0, 0, 0, 0, 0}; // little-endian, polygon, 0
> rings
>
> // 00000000030000000100000000
> byte[] throughJTS = writer.write(reader.read(fromPostgis)); // big endian,
> polygon, 1 ring, 0 points
>
> (3) Try to write back to PostGIS
>
> gis=> select ST_GeomFromWKB(E'\\x00000000030000000100000000');
> ERROR: Polygon must have at least four points in each ring
>
> ================================
>
> JTS-Version = 1.13
> POSTGIS="2.1.0 r11822"
PostGIS binary version for an empty polygon is different:
strk=# select ST_AsBinary('POLYGON EMPTY'::geometry, 'ndr');
st_asbinary
----------------------
\x010300000000000000
(1 row)
strk=# select ST_AsBinary('POLYGON EMPTY'::geometry, 'xdr');
st_asbinary
----------------------
\x000000000300000000
(1 row)
That is, a polygon with NO rings, whereas it looks like JTS version
is a polygon with 1 empty ring ?
--strk;
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Jts-topo-suite-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jts-topo-suite-user