PostGIS
Sisukord
Sissejuhatus
PostGIS http://postgis.refractions.net/ tarkvara lisab PostgreSQL andmebaasile ruumilise toe (ingl. k. spatially enables PostgreSQL) kirjeldades geograafilised objektid (ingl. k geographic objects). Tehniliselt toetub PostGIS asjaolule, et PostgreSQL tarkvara võimaldab väga otsekoheselt kirjeldada uusi andmetüüpe.
Võrreldes nt Shapefile formaadis andmete kasutamisega on PostGIS'il sellised eelised
- on eriti sobiv juhtumil, kui andmetega töötavad samaaegselt mitu kasutajat
- võimaldab pidada GIS-andmete andmebaasi teenust võrgus
- sobib hästi GIS-andmete muutmisega seotud kasutusjuhtumiteks
PostGIS tarkvara paigaldamine
PostGIS tarkvara paigaldamiseks sobib öelda nt Debian Squeeze puhul
# apt-get install postgis postgresql-8.4-postgis
kus
- postgis - sisaldab utiliite Shapefile formaadis andmete teisendamiseks, pgsql2shp ja shp2pgsql
- postgresql-8.4-postgis - PostgreSQL andmebaasi teek ning skriptid vastavate funktsioonide andmebaasi tekitamiseks
Funktsioonide moodustamiseks andmebaasi postgis public skeemi sobib öelda
$ psql -h 127.0.0.1 -U postgres postgis < /usr/share/postgresql/8.4/contrib/postgis.sql $ psql -h 127.0.0.1 -U postgres postgis < /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql $ psql -h 127.0.0.1 -U postgres postgis < /usr/share/postgresql/8.4/contrib/postgis_comments.sql
Eduka paigaldamise korral moodustatatakse andmebaasi hulka funktsioone ning kaks uut tabelit
- public.geometry_columns
- public.spatial_ref_sys
ja öeldakse nt
sql> SELECT postgis_full_version(); postgis_full_version ---------------------------------------------------------------------------------------- POSTGIS="1.4.0" GEOS="3.2.0-CAPI-1.6.0" PROJ="Rel. 4.7.1, 23 September 2009" USE_STATS
Andmete import Shapefile formaadist
Näitena imporditakse Maa-ameti Geoportaalis Shapefile formaadis jagatavaid Eesti asustusüksuste ruumiandmeid http://geoportaal.maaamet.ee/docs/haldus_asustus/20100301_asustus_shp.zip PostGIS'i. Peale faili kopeerimist tuleb arhiiv lahti pakkida
$ unzip 20100301_asustus_shp.zip
ning tekivad sellised failid
$ ls -l -rw-r--r-- 1 mart mart 955858 Feb 26 10:46 F20100301_asustus.dbf -rw-r--r-- 1 mart mart 502 Feb 26 17:19 F20100301_asustus.prj -rw-r--r-- 1 mart mart 19340604 Feb 26 10:46 F20100301_asustus.shp -rw-r--r-- 1 mart mart 37572 Feb 26 10:46 F20100301_asustus.shx
Shapefile formaadis andmete teisendamiseks sql skripti kujule sobib kasutada shp2pgsql utiliiti
$ shp2pgsql F20100301_asustus.shp asustusyksus > asutusyksus.sql
Maa-ameti andmed on esitatud ISO-8859-1 kodeeringus ja kuna tavaliselt andmebaasi kodeering on et_EE.UTF-8, siis tuleb teha vastav teisendus, nt selliselt
$ recode ISO-8859-1..UTF-8 asutusyksus.sql
Vajadusel saab kohendada sql skript, nt näidata alguses lisaks skeemi nimi (eestikaart)
set search_path to eestikaart, public;
Ning lõpuks laadida andmed andmebaasi
$ psql -h 127.0.0.1 -U mart postgis < asustusyksus.sql
PostGIS kasutamine
PostGISi ei kasutata tavaliselt vahetult üldotstarbelise SQL kliendiga, vaid mõne spetsiaalse GIS tarkvara poolt, nt