Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Changed the page's name to reflect archiving.

OBSOLETE

See the postgresql installation page.

Installation

We assume you have already installed postgresql.
This is a good how to:

...

make sure these paths are correct!

Code Block

$ 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-libdir=/usr/local/share/proj
$ make
$ su
$ make install
$ exit

Errors

error

Code Block

configure: error: Can't find 'flex'

solution

Code Block

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>

Code Block

$ 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:

Code Block

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

Code Block

echo '/usr/local/lib' >> /etc/ld.so.conf.d/local-lib.conf
ldconfig

test

How do we know if everything is working properly?

...

...test proj4 by running this SQL

Code Block

    select asewkt(transform(GeomFromText('POINT(-122.4195 37.77767)', 4326), 900913))

If proj4 is installed and running properly you should see this:

Code Block

SRID=900913;POINT(-13627676.4031672 4548065.4753209)

...

To test geos run this sql (needs eas database to be restored):
todo: need some sql here that does not require a database

Code Block

    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;

...