[postgis-devel] postgis ST_AsEWKT and ArcSDE's ST_ type

Kevin Neufeld kneufeld at refractions.net
Thu Aug 14 08:51:20 PDT 2008


PostGIS's 3dm parser expects to see 4 double precision fields. 
Additionally, PostGIS doesn't yet recognize the " ZM" suffix to 
"LINESTRING". (I believe PaulR had this on his TODO list for v1.4)

(OpenGIS specs, version 1.2.0)
http://www.opengeospatial.org/standards/sfa


postgis=# select ST_AsText('LINESTRING(0 0 0.5 2.4, 1 1 2 4)'::geometry);
       st_astext
---------------------
  LINESTRING(0 0,1 1)
(1 row)

postgis=# select ST_AsEWKT('LINESTRING(0 0 0.5 2.4, 1 1 2 4)'::geometry);
             st_asewkt
---------------------------------
  LINESTRING(0 0 0.5 2.4,1 1 2 4)
(1 row)


It looks like you'll have to find a way to either drop your M literal 
from your coordinates, or convert it into a double that PostGIS can parse.

Cheers,
Kevin


DNC wrote:
> Hello.
> 
> I'm wondering if anyone can spot what's failing between ArcSDE's text
> representation of a 3dm geometry column and what PostGIS expects. I'm
> getting points from LINESTRING ZM in the following sql (shape is an ArcSDE
> spatial type column, st_astext is an ArcSDE function and so is st_asbinary):
> 
> select objectid,st_astext(shape) AS SDE, ST_AsEWKT(st_asbinary(shape)) as PG
> from gdbman.srega_adutores where objectid<=7400;
> 
> The output is like this (arranged for readability):
> objectid=7356
> SDE="LINESTRING ZM ( 268150.63700000 153514.32700000 0.00000000 1.#QNAN000,
> 268151.15900000 153513.31200000 0.00000000 1.#QNAN000, 268153.38500000
> 153513.50000000 0.00000000 1.#QNAN000, 268219.31400000 153519.58500000
> 0.00000000 1.#QNAN000, 268288.04400000 153525.98200000 0.00000000
> 1.#QNAN000, 268357.54700000 153532.72800000 0.00000000 1.#QNAN000)"
> PG="POINT(-179.999999497086 17.2800119090087)"
> 
> objectid=7357
> SDE="LINESTRING ZM ( 267722.96400000 153387.13900000 0.00000000 1.#QNAN000,
> 267723.71600000 153386.74100000 0.00000000 1.#QNAN000, 267726.41100000
> 153387.96400000 0.00000000 1.#QNAN000, 267744.05200000 153396.02100000
> 0.00000000 1.#QNAN000, 267747.68000000 153397.76500000 0.00000000
> 1.#QNAN000, 267751.34800000 153399.71700000 0.00000000 1.#QNAN000,
> 267755.24200000 153402.00900000 0.00000000 1.#QNAN000, 267758.85400000
> 153404.35600000 0.00000000 1.#QNAN000, 267789.22500000 153424.94200000
> 0.00000000 1.#QNAN000, 267848.41000000 153465.14800000 0.00000000
> 1.#QNAN000, 267855.75200000 153470.07200000 0.00000000 1.#QNAN000,
> 267858.00700000 153471.49900000 0.00000000 1.#QNAN000, 267860.58700000
> 153472.93500000 0.00000000 1.#QNAN000, 267862.94300000 153474.07800000
> 0.00000000 1.#QNAN000, 267885.27100000 153483.79100000 0.00000000
> 1.#QNAN000, 267891.50100000 153486.25400000 0.00000000 1.#QNAN000,
> 267897.54700000 153488.19700000 0.00000000 1.#QNAN000, 267903.28200000
> 153489.61300000 0.00000000 1.#QNAN000)"
> PG="POINT(-179.999998491257 128.160017917157)"
> 
> Is there anyway to build a geometry from this?
> 
> Thanks,
> Duarte Carreira
> 



More information about the postgis-devel mailing list