[postgis-users] How to insert polygon

Puthick Hok hputhick at gmail.com
Tue Oct 12 17:38:03 PDT 2010


This helps a lot.
Thanks.
Puthick

Paragon Corporation wrote:
> Puthick,
>
> You have made an unfortunate, but we wonder why not more common mistake.
>
> PostgreSQL has built in geometry types it has had since the beginning of its
> existence.  These go by the names 
>
> polygon, lseg, box, etc. and you have unfortunatly created you sitelocation
> field using this native PostgreSQL type instead of a PostGIS geometry type.
>
> This is NOT a PostGIS geometry type - which is simply of type GEOMETRY
> regardless of what type of geometry it is.
> PostGIS just has 3 data types (geometry, geography, in PostGIS 2.0 -- also
> raster) and the subtypes are internally managed in PostGIS or with table
> constraints.
>
>
> To create a postgis geometry type field  -- please follow the help
> instructions
>
> http://www.postgis.org/documentation/manual-1.5/AddGeometryColumn.html
>
> A short-hand would be to create as an unconstrainted geometry
>
> CREATE TABLE siteloc(siteid serial primary key, sitelocation geometry);
>
> Add data to your table.
>
> --then force constraints on with 
> http://www.postgis.org/documentation/manual-1.5/Populate_Geometry_Columns.ht
> ml
>
> SELECT populate_geometry_columns('public.siteloc'::regclass);
>
>
>
> Leo and Regina
> http://www.postgis.us
>
> -----Original Message-----
> From: postgis-users-bounces at postgis.refractions.net
> [mailto:postgis-users-bounces at postgis.refractions.net] On Behalf Of Puthick
> Hok
> Sent: Tuesday, October 12, 2010 7:36 PM
> To: postgis-users at postgis.refractions.net
> Subject: [postgis-users] How to insert polygon
>
> Hi,
>
> I started using Postgis a couple months ago. Now I have a problem inserting
> a polygon. The table definition is like this.
>
> Table "public.siteloc"
>     Column    |  Type   | Modifiers
> --------------+---------+-----------
>  siteid       | integer | not null
>  sitelocation | polygon | not null
> Indexes:
>     "siteloc_pkey" PRIMARY KEY, btree (siteid)
>     "sitelocation_sp_index" gist (sitelocation)
>
> When I ran the following SQL statement:
>
> INSERT INTO siteloc (siteid, sitelocation) VALUES (18,
> ST_GeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))', -1));
>
> I got this error:
>
> ERROR:  column "sitelocation" is of type polygon but expression is of type
> geometry LINE 1: INSERT INTO siteloc (siteid, sitelocation) VALUES (18,
> ST_Ge...
>                                      ^
> HINT:  You will need to rewrite or cast the expression.
>
> When I tried to cast it with this statement:
>
> INSERT INTO siteloc (siteid, sitelocation) VALUES (18, CAST(
> ST_GeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))', -1) AS polygon) );
>
> or
>
> INSERT INTO siteloc (siteid, sitelocation) VALUES (18,
> ST_GeomFromText('POLYGON((0 0, 4 0, 4 4, 0 4, 0 0))', -1)::polygon);
>
> I got this error:
>
> ERROR:  cannot cast type geometry to polygon LINE 1: ...romText('POLYGON((0
> 0, 4 0, 4 4, 0 4, 0 0))', -1)::polygon);
>
> I tried google, it did not help. Is there a problem defining my field
> 'sitelocation' as 'polygon' rather 'geometry'.
>
> Please help me.
> Puthick
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
>   




More information about the postgis-users mailing list