PostGIS

Allikas: Kuutõrvaja
Redaktsioon seisuga 5. aprill 2010, kell 18:29 kasutajalt Imre (arutelu | kaastöö) (Kasulikud lisamaterjalid)
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)

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

Kasulikud lisamaterjalid