Repository Setup
If you blindly type "yum install postgresql-devel", you may have trouble getting everything installed properly.
Use the postgresql repositories instead of the Centos repsositories.
Here is how you do that.
Installation
We assume you have already installed postgresql.
This is a good how to:
First install these packages:
proj4 install
geos install
OK, now we build postGIS.
todo - where and how do we get the postgis package?
$ yum install postgresql-devel $ tar xvfz postgis-1.3.1.tar.gz $ cd postgis-1.3.1 $ ./configure \--with-pgsql=/usr/bin/pg_config \--with-geos=/usr/local/bin/geos-config \--with-proj=/usr/local $ make $ su $ make install $ exit
Errors
error
configure: error: Can't find 'flex'
solution
yum install flex
postgis_template
This is optional.
This page shows how to create and use a db template:
http://geospatial.nomad-labs.com/2006/12/24/postgis-template-database/
make a database
You can make a postgis db "by hand" (see below)<br>
Or you can make a postgis db by using the template (see previous)<br>
$ su postgres $ cd $ createdb sfmaps $ createlang plpgsql sfmaps $ psql \-f /usr/share/lwpostgis.sql \-d sfmaps (error: could not load library) $ psql \-f /usr/share/spatial_ref_sys.sql \-d sfmaps $ psql sfmaps
if you encounter this error:
libgeos_c.so.1: cannot open shared object file: No such file or directory<br>
do this<br>
Add /usr/local/lib to the dynamic linker run-time bindings
echo '/usr/local/lib' >> /etc/ld.so.conf.d/local-lib.conf ldconfig
test
How do we know if everything is working properly?
First, follow the install instructions (which I may not have included herein - sorry!)
http://postgis.refractions.net/docs/ch02.html#id2630100
Have the developers run the automated unit tests. But if your impatient I think the following should work...
...test proj4 by running this SQL
select asewkt(transform(GeomFromText('POINT(-122.4195 37.77767)', 4326), 900913))
If proj4 is installed and running properly you should see a couple of numbers reasonably close to these:
6007068, 2111312
If not, you’ll get a SQL error.
To test geos run this sql (needs eas database to be restored):
todo: need some sql here that does not require a database
select * from address_base ab, addresses a where contains( st_transform( st_envelope(ST_GeomFromEWKT('SRID=4326;POLYGON((-122.42134 37.77179 0,-122.42134 37.77780 0,-122.41537 37.77780 0,-122.41537 37.77179 0,-122.42134 37.77179 0))')), 2227 ), ab.geometry ) and ab.address_base_id = a.address_base_id limit 100;
0 Comments