Обсуждение: beginner postgis question lat/lon
Hi,
This may seem like a very simple question...it is...but I can't find
documentation on it to help. I've seen some posts about lat/long but
none that give simple solutions on how to insert lat/long in tables.
I'm a new user to postgis...I've been using mysql for a while but
needed the spatial functions so just recently downloaded postgresql/
postgis.
How do I create a simple table with several linestrings that have
coordinates in latitude/longitude?
Eventually, I'd like to create polygons with coordinates in lat/long
and see if they intersect various linestrings, but I'm trying to start
out simple.
Here's what I've done so far...
postgis=# \d routes_geom;
Table "public.routes_geom"
Column | Type | Modifiers
--------+-----------------------+-----------
id | integer |
name | character varying(25) |
geom | geometry |
Check constraints:
"enforce_dims_geom" CHECK (ndims(geom) = 2)
"enforce_geotype_geom" CHECK (geometrytype(geom) =
'LINESTRING'::text OR geom IS NULL)
"enforce_srid_geom" CHECK (srid(geom) = 4326)
postgis=# insert into routes_geom values(1, 'J084',
GeomFromText('LINESTRING(38.20 -121.00, 38.20, -118.00)', 4326));
I receive this error:
ERROR: parse error - invalid geometry
CONTEXT: SQL function "geomfromtext" statement 1
Do you have a good way to input lat/lon and do spatial relationships
using lat/long coords?
Thanks for any help,
Shad
On Wed, Feb 27, 2008 at 04:59:07PM -0800, shadrack wrote:
> postgis=# insert into routes_geom values(1, 'J084',
> GeomFromText('LINESTRING(38.20 -121.00, 38.20, -118.00)', 4326));
>
> I receive this error:
> ERROR: parse error - invalid geometry
> CONTEXT: SQL function "geomfromtext" statement 1
You have an extraneous comma after the 38.20.
Have a nice day,
--
Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/
> Those who make peaceful revolution impossible will make violent revolution inevitable.
> -- John F Kennedy
Вложения
On Wed, Feb 27, 2008 at 04:59:07PM -0800, shadrack wrote: > This may seem like a very simple question...it is...but I can't find > documentation on it to help. I've seen some posts about lat/long but > none that give simple solutions on how to insert lat/long in tables. See the PostGIS documentation, in particular Chapter 4 "Using PostGIS": http://postgis.refractions.net/docs/ch04.html (The site isn't responding right now; hopefully it'll be available soon.) > postgis=# insert into routes_geom values(1, 'J084', > GeomFromText('LINESTRING(38.20 -121.00, 38.20, -118.00)', 4326)); > > I receive this error: > ERROR: parse error - invalid geometry > CONTEXT: SQL function "geomfromtext" statement 1 There are two problems with the geometry string: the syntax error is due an extra comma in the second pair of coordinates, and coordinates should be (X Y) therefore (lon lat) instead of (lat lon). Try this: insert into routes_geom values(1, 'J084', GeomFromText('LINESTRING(-121.00 38.20, -118.00 38.20)', 4326)); You might wish to subscribe to the postgis-users mailing list if you have additional questions. -- Michael Fuhr
Thanks for the help! Stupid error, Shad On Feb 28, 7:04 am, m...@fuhr.org (Michael Fuhr) wrote: > On Wed, Feb 27, 2008 at 04:59:07PM -0800, shadrack wrote: > > This may seem like a very simple question...it is...but I can't find > > documentation on it to help. I've seen some posts about lat/long but > > none that give simple solutions on how to insert lat/long in tables. > > See the PostGIS documentation, in particular Chapter 4 "Using PostGIS": > > http://postgis.refractions.net/docs/ch04.html > > (The site isn't responding right now; hopefully it'll be available > soon.) > > > postgis=# insert into routes_geom values(1, 'J084', > > GeomFromText('LINESTRING(38.20 -121.00, 38.20, -118.00)', 4326)); > > > I receive this error: > > ERROR: parse error - invalid geometry > > CONTEXT: SQL function "geomfromtext" statement 1 > > There are two problems with the geometry string: the syntax error is > due an extra comma in the second pair of coordinates, and coordinates > should be (X Y) therefore (lon lat) instead of (lat lon). Try this: > > insert into routes_geom values(1, 'J084', GeomFromText('LINESTRING(-121.00 38.20, -118.00 38.20)', 4326)); > > You might wish to subscribe to the postgis-users mailing list if you > have additional questions. > > -- > Michael Fuhr > > ---------------------------(end of broadcast)--------------------------- > TIP 3: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq