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
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to