[postgis-users] no row selected on spatial query
Puneet Kishor
punk.kish at gmail.com
Thu Oct 27 17:06:11 PDT 2011
A brief follow-up on this --
On Oct 27, 2011, at 5:57 PM, Puneet Kishor wrote:
> I inherited two tables like so
>
> db=# select ST_Extent(the_geom) from t1;
> st_extent
> -------------------------------------------------
> BOX(-180 5.67656603969958,180 89.9999951703269)
> (1 row)
>
> db=# select ST_Extent(the_geom) from t2;
> st_extent
> -----------------------------------------------------------
> BOX(-3666182.8927 1296299.9824,4440422.8742 8820425.3008)
> (1 row)
>
> I want to convert t2 to match t1. So, I tried the following --
>
> db=# UPDATE t2 SET the_geom = ST_Transform(the_geom, 4326);
> UPDATE 1354
>
>
> But that didn't do it.
>
> db=# select ST_Extent(the_geom) from t2;
> st_extent
> -----------------------------------------------------------
> BOX(-3666182.8927 1296299.9824,4440422.8742 8820425.3008)
> (1 row)
>
>
> What do I do to transform t2 so its geometry matches t1?
>
Turns out t2 was loaded from a shapefile using shp2pgsql using SRID 4326. Its table definition is like so
CREATE TABLE t2
(
gid serial NOT NULL,
objectid integer,
type integer,
the_geom geometry,
CONSTRAINT t2_pkey PRIMARY KEY (gid ),
CONSTRAINT enforce_dims_the_geom CHECK (st_ndims(the_geom) = 2),
CONSTRAINT enforce_geotype_the_geom CHECK (geometrytype(the_geom) = 'POINT'::text OR the_geom IS NULL),
CONSTRAINT enforce_srid_the_geom CHECK (st_srid(the_geom) = 4326)
)
WITH (
OIDS=FALSE
);
So, in spite of the `enforce_srid_the_geom` CONSTRAINT which should restrict geometry to 4326, seems like meter values got inserted into the table. How is that possible?
And, in any case, how can I repair this?
--
Puneet Kishor
More information about the postgis-users
mailing list