Re: Postgres native geometry types

From: Szymon Guz <mabewlun(at)gmail(dot)com>
To: Kasia Tuszynska <ktuszynska(at)esri(dot)com>
Cc: "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>
Subject: Re: Postgres native geometry types
Date: 2011-03-05 15:53:07
Message-ID: AANLkTinmjkdo0wrcD5jWnKAUeNDwhi5BTkZocn=KJSCY@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

On 4 March 2011 22:58, Kasia Tuszynska <ktuszynska(at)esri(dot)com> wrote:

> Hi Everybody,
>
>
>
> I am doing some testing on the postgres native geometry types, namely:
> point, line, lseg, box, path (closed), path [open], polygon and circle.
>
>
>
> Does anyone know what are they being used for? PostGIS is usually
> designated as the gis “module” to postgres and there are other spatial types
> that work on postgres.
>
> So, what are the native geometry types on postgres used for?
> http://www.postgresql.org/docs/9.0/static/datatype-geometric.html#AEN6332
>
>
>
> I got the point, line, lseg, box and circle to wok but I am having some
> problems creating data with the path and polygon types. I am guessing that
> the postgres doc has not been updated lately. It says that the line function
> has not been implemented yet, but it works, it also omits a crucial part in
> the usage.
>
> It shows what I would interpret this usage: INSERT INTO gis.test_line
> (k_id, pg_line) VALUES (1, line((10,10),(20,20)));
>
>
>
> Where in fact, in the types that I could get it to work I needed the
> following: INSERT INTO gis.test_line (k_id, pg_line) VALUES (1,
> line(point(10,10),point(20,20)));
>
>
>
> Some variations I tried for path and polygon:
>
>
>
> create table gis.test_path (k_id integer, pg_path path);
>
> INSERT INTO gis.test_path (k_id, pg_path) VALUES (1,
> path((10,10),(10,20),(20,20), (20,10)));
>
>
>
> create table gis.test_path2 (k_id integer, pg_path path);
>
> INSERT INTO gis.test_path2 (k_id, pg_path) VALUES (1,
> path(point(10,10),point(10,20)));
>
>
>
> create table gis.test_polygon (k_id integer, pg_poly polygon);
>
> INSERT INTO gis.test_polygon (k_id, pg_poly) VALUES (1,
> polygon((10,10),(10,20),(20,20),(20,10)));
>
>
>
> create table gis.test_polygon2 (k_id integer, pg_poly polygon);
>
> INSERT INTO gis.test_polygon2 (k_id, pg_poly) VALUES (1,
> polygon(point(10,10),point(10,20),point(20,20),point(20,10)));
>
>
>
> Anyone have any suggestions on these two types?
>
>
>
> Thank you,
>
> Sincerely,
>
> Kasia
>

This works for me:

# create table test_path (k_id integer, pg_path path);

# INSERT INTO test_path (k_id, pg_path) VALUES (1,
path'((10,10),(10,20),(20,20), (20,10))');
INSERT 0 1

(pg90(at)[local]:5900) 16:37:21 [random]
# select * from test_path
random-# ;
k_id | pg_path
------+-----------------------------------
1 | ((10,10),(10,20),(20,20),(20,10))
(1 row)

# create table test_polygon (k_id integer, pg_poly polygon);
CREATE TABLE
# INSERT INTO test_polygon (k_id, pg_poly) VALUES (1,
polygon'((10,10),(10,20),(20,20),(20,10))');
INSERT 0 1
(pg90(at)[local]:5900) 16:41:13 [random]
# select * from test_polygon;
k_id | pg_poly
------+-----------------------------------
1 | ((10,10),(10,20),(20,20),(20,10))
(1 row)

Good examples of creating all geometry types could be found here:
http://www.postgresql.org/docs/9.0/interactive/functions-geometry.html

regards
Szymon

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Lukasz Brodziak 2011-03-05 19:22:44 Re: Server doesn't listen error
Previous Message Szymon Guz 2011-03-05 13:26:45 Re: Postgres native geometry types