Thread: Proper entry of polygon type data
Hello, I would like to use 'polygon' type data and am wondering about the entry format of the vertex coordinates. Are the coordinates of the polygon type to be entered one entry per polygon vertex, or one entry per polygon edge segment? For example: I have a triangle with vertex corners A, B, C. One entry per vertex format suggests INSERT INTO my_table (my_polygon_column) VALUES ( ((Ax,Ay),(Bx,By),(Cx,Cy)) ); One entry per edge format suggests INSERT INTO my_table (my_polygon_column) VALUES ( ((Ax,Ay),(Bx,By),(Bx,By),(Cx,Cy),(Cx,Cy),(Ax,Ay)) ); Which entry format is the correct one? If per vertex format is the correct one, do I need to 'close' the path by entering the first vertex again at the end of the list? ie: INSERT INTO my_table (my_polygon_column) VALUES ( ((Ax,Ay),(Bx,By),(Cx,Cy),(Ax,Ay)) ); Thanks, Peter
Hi Peter, If you want to use Postgres to store/manage/query spatial data, I strongly recommend you look at PostGIS, & not the nativePostgres geometry types. Brent Wood Brent Wood DBA/GIS consultant NIWA, Wellington New Zealand >>> Peter Willis <peterw@borstad.com> 03/24/09 10:35 AM >>> Hello, I would like to use 'polygon' type data and am wondering about the entry format of the vertex coordinates. Are the coordinates of the polygon type to be entered one entry per polygon vertex, or one entry per polygon edge segment? For example: I have a triangle with vertex corners A, B, C. One entry per vertex format suggests INSERT INTO my_table (my_polygon_column) VALUES ( ((Ax,Ay),(Bx,By),(Cx,Cy)) ); One entry per edge format suggests INSERT INTO my_table (my_polygon_column) VALUES ( ((Ax,Ay),(Bx,By),(Bx,By),(Cx,Cy),(Cx,Cy),(Ax,Ay)) ); Which entry format is the correct one? If per vertex format is the correct one, do I need to 'close' the path by entering the first vertex again at the end of the list? ie: INSERT INTO my_table (my_polygon_column) VALUES ( ((Ax,Ay),(Bx,By),(Cx,Cy),(Ax,Ay)) ); Thanks, Peter -- Sent via pgsql-general mailing list (pgsql-general@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general NIWA is the trading name of the National Institute of Water & Atmospheric Research Ltd.
Hi Brent, I am aware of PostGIS and already use it. My question was regarding the entry format of PostgreSQL polygon data. There is a void in the PostgreSQL documentation regarding this. Incidentally, PostGIS uses PostgreSQL polygon, point, and path data types. Using PostGIS for simple , non-geographic, polygon rules is a bit like using a tank to kill a mosquito. Peter Brent Wood wrote: > Hi Peter, > > If you want to use Postgres to store/manage/query spatial data, I strongly recommend you look at PostGIS, & not the nativePostgres geometry types. > > > Brent Wood > > Brent Wood > DBA/GIS consultant > NIWA, Wellington > New Zealand >>>> Peter Willis <peterw@borstad.com> 03/24/09 10:35 AM >>> > Hello, > > I would like to use 'polygon' type data and am wondering about > the entry format of the vertex coordinates. > > Are the coordinates of the polygon type to be entered one > entry per polygon vertex, or one entry per polygon edge segment? > > For example: > I have a triangle with vertex corners A, B, C. > > One entry per vertex format suggests > > INSERT INTO my_table (my_polygon_column) > VALUES ( ((Ax,Ay),(Bx,By),(Cx,Cy)) ); > > > One entry per edge format suggests > > INSERT INTO my_table (my_polygon_column) > VALUES ( ((Ax,Ay),(Bx,By),(Bx,By),(Cx,Cy),(Cx,Cy),(Ax,Ay)) ); > > Which entry format is the correct one? > > If per vertex format is the correct one, do I need to > 'close' the path by entering the first vertex again at the end of the > list? > > ie: > INSERT INTO my_table (my_polygon_column) > VALUES ( ((Ax,Ay),(Bx,By),(Cx,Cy),(Ax,Ay)) ); > > Thanks, > > Peter >
On Mon, Mar 23, 2009 at 2:13 PM, Peter Willis <peterw@borstad.com> wrote: > For example: > I have a triangle with vertex corners A, B, C. > > One entry per vertex format suggests > > INSERT INTO my_table (my_polygon_column) > VALUES ( ((Ax,Ay),(Bx,By),(Cx,Cy)) ); > > > One entry per edge format suggests > > INSERT INTO my_table (my_polygon_column) > VALUES ( ((Ax,Ay),(Bx,By),(Bx,By),(Cx,Cy),(Cx,Cy),(Ax,Ay)) ); > > Which entry format is the correct one? > > If per vertex format is the correct one, do I need to > 'close' the path by entering the first vertex again at the end of the > list? the documentation (http://www.postgresql.org/docs/8.3/interactive/datatype-geometric.html#AEN5582) shows that you are inserting a sequence of vertexes. Also, it is stated that the polygon is closed, which implies that you don't need to close it yourself. merlin
Mark Cave-Ayland wrote: > > Peter Willis wrote: >> Incidentally, PostGIS uses PostgreSQL polygon, point, and path >> data types. > > Errr... no it doesn't. PostGIS uses its own internal types to represent > all the different geometries, although it does provide a cast between > the existing PostgreSQL types as an aid for people wishing to migrate. I stand corrected I guess. The last time I looked at the actual guts of PostGIS was WAAAAYYYYY back. And that was long before I actually started using it. ...of course, my WAAAYYYY back memory may be crossed with my WAAAYYYYY back forgetfulness, there as well.... Peter