[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