[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