postgis Handledning
Komma igång med postgis
Sök…
Anmärkningar
PostGIS är en uppsättning tillägg för PostgreSQL-databasen. Med PostGIS kan du lagra geospatial data och utföra rumsliga frågor i en postgres-databas.
Till skillnad från standarddatatyperna i en normal postgres-databas måste rumsliga data hanteras annorlunda. Frågorna du kan utföra i en rumslig databas definieras vanligtvis av avgränsningsrutor i två eller tre dimensioner. För att lagra, indexera och hantera dessa datatyper postGIS använder ett koncept som heter R-Trees , som inte är en del av standard postgres-installationen.
Med en postGIS-databas kan du:
- lagra rumsliga data
- utföra rumsliga frågor för att hämta och extrahera information (poäng, områden).
- hantera rumslig information och metadata på tabeller (som: använt koorinat-referenssystem).
- konvertera geometrier från ett koordinatsystem till ett annat
- jämföra geometrier och extrahera egenskaper (som: en längd på en väg eller byggnad)
- generera nya geometrier från andra.
versioner
| Senaste utgåvor av funktionen | Officiell dokumentation | Utgivningsdatum |
|---|---|---|
| 2.3.0 | HTML , PDF | 2016/09/26 |
| 2.2.0 | HTML , PDF | 2015/10/07 |
| 2.1.0 | HTML , PDF | 2013/08/17 |
| 2.0.0 | HTML , PDF | 2012-04-03 |
| 1.5.0 | 2010-02-04 | |
| 1.4.0 | 2009-07-24 | |
| 1.3.0 | 2007-08-09 | |
| 1.2.0 | 2006-12-08 | |
| 1.1.0 | 2005-12-21 | |
| 1.0.0 | 2005-04-19 |
Installation via Package Manager
Båge:
Ett officiellt pacman-paket är tillgängligt. Installera paketet som root med hjälp av:
pacman -S postgis
OpenSuse:
För att använda openSuse-lagringarna för geospatiala applikationer, aktivera Geo-repository som root:
zypper ar http://download.opensuse.org/repositories/Application:/Geo/openSUSE_[RELEASE]/ GEO
där [RELEASE] är det officiella utgivningsnumret för din Suse-distribution. Efter detta kan du installera postgis med:
zypper install postgis
Installation från källan (med Postgres 9.1 eller högre)
Den här guiden är uttryckligen avsedd för PostgreSQL 9.1 eller högre på linux-maskiner. Den använder postgres-tilläggsfunktionen som avsevärt förbättrar importen av tillägg till en befintlig postgres-installation. Om du måste arbeta med en äldre version av postgres, se till de officiella dokumentationerna .
Lös beroenden
PostGIS är ett komplext projekt som har ett antal beroenden. För att fortsätta med den manuella konfigurationen och byggproceduren måste du lösa dessa beroenden och installera följande paket antingen manuellt eller via pakethanteraren.
Minimikrav
- PostgreSQL 9.1 eller högre. Det är viktigt att du installerar databasen inklusive serverhuvuden, som vanligtvis finns i dev- paketen för paketets manager på ditt arkiv.
- GNU C Compiler gcc .
- GNU- märke . För att slutföra byggprocessen.
- Proj4 . Ett projektionsbibliotek för koordinattransformationer.
- GEOS . Ett geometri-bibliotek som implementerar beskrivningar och enkla geometrier. Version 3.5 eller högre rekommenderas för att använda nyare funktioner som ST_ClipByBox2D och ST_Subdivide .
- GDAL , version 1.9 eller högre. Ett bibliotek som implementerar abstrakta dataformat för raster- och vektorbaserade geospatiala data.
- LibXML2 , version 2.5 eller högre. Ett bibliotek för att arbeta med XML, XSLT och DTD.
- JSON-C , version 0.9 eller högre. Ett bibliotek för att skapa output i JSON-format
Valfria krav
- GTK (kräver GTK + 2.0, 2.8+) för att sammanställa shp2pgsql-gui.
- SFCGAL , version 1.1 (eller högre) kan användas för att tillhandahålla ytterligare 2D- och 3D-avancerade analysfunktioner till PostGIS.
- PCRE . Ett bibliotek för regelbundet uttrycksmönster som matchar Perl 5-syntaxen. Detta bibliotek behövs om du vill arbeta med Adress Standardizer .
- CUnit . Ett enhetstestverktyg som behövs för regressionstest.
- DocBook (xsltproc) krävs för att bygga dokumentationen.
- DBLatex krävs för att bygga dokumentationen i PDF-format.
- ImageMagick krävs för att generera de bilder som används i dokumentationen.
Skaffa källorna
Ladda ner den senaste tarballen för att få källkoden:
wget http://postgis.net/stuff/postgis-2.3.2dev.tar.gz
tar -xvzf postgis-2.3.2dev.tar.gz
eller använd det officiella SVN-förvaret:
svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-2.3.2dev
Konfiguration
Om du skaffade källorna via SVN kan du förbereda konfigurationsskriptet med:
./autogen.sh
För att konfigurera byggprocessen för din specifika maskin, kör i projektmappen:
./configure
Det finns flera valfria parametrar för konfigurationssteget. Se den officiella dokumentationen för detaljerade instruktioner, detta är vanligtvis valfritt och endast för servrar som använder icke-standardinstallationer.
Bygga
När konfigurationssteget är avslutat skapas en makefil. För att starta byggprocessen:
make
Den sista utgången ska vara:
"PostGIS was built successfully. Ready to install."
Från version 1.4.0 har alla funktioner kommentarer från dokumentationen. Om du vill installera dessa kommentarer i dina rumsliga databaser senare, kör kommandot som kräver docbook.
make comments
Installation
Installera alla tillägg med:
make install
PostGIS-tillägg byggs och installeras automatiskt om du använder PostgreSQL 9.1 eller högre. Du kan installera nödvändiga tillägg manuellt om du har annan inställning.
I projektmappen:
cd extensions
cd postgis
make clean
make
make install
cd ..
cd postgis_topology
make clean
make
make install
cd ..
cd postgis_sfcgal
make clean
make
make install
cd ..
cd address_standardizer
make clean
make
make install
make installcheck
cd ..
cd postgis_tiger_geocoder
make clean
make
make install
make installcheck
Om du vill installera tillägget manuellt på en annan maskin, kopierar följande filer från extensions till PostgreSQL/share/extension mappen på målet. För varje tillägg:
scp extensions/[EXTENSION]/sql/*.sql user@target:[POSTGIS_PATH]/share/extension
där [EXTENSION] är det valda tillägget (postgis, postgis_topology, postgis_sfcgal, address_standardizer, postgis_tiger_geocoder) och [POSTGIS_PATH] är installationsvägen för PostGIS på din målmaskin.
Kontrollera installationen
Om du inte har en postgres-databastjänst ska du konfigurera din postgres-databas först . Anslut till databasen med:
su postgres -c psql
För att verifiera att tilläggarna är tillgängliga kör du följande frågor i en psql-session:
SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';
Utgången ska se ut så här:
name | default_version | installed_version
------------------------------+-----------------+-------------------
address_standardizer | 2.3.2dev | 2.3.2dev
address_standardizer_data_us | 2.3.2dev | 2.3.2dev
postgis | 2.3.2dev | 2.3.2dev
postgis_sfcgal | 2.3.2dev |
postgis_tiger_geocoder | 2.3.2dev | 2.3.2dev
postgis_topology | 2.3.2dev |
(6 rows)
För att utföra ett djupgående test efter installationen kör du följande kommando i projektmappen:
make check
Detta körs genom olika kontroller och tester med det genererade biblioteket mot en faktisk PostgreSQL-databas.
Ställa in en geospatial databas
För att skapa en ny tom databas, kör som postgres-användare:
createdb [yourdatabase]
Anslut till databasen med en psql-session:
psql -d [yourdatabase]
I psql-sessionen körs:
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
för att skapa de nödvändiga geospatiella förlängningarna. När detta är gjort är databasen en geospatiellt aktiverad databas och den är redo att användas.
En geospatial "Hello World"
I det här exemplet kommer vi att skapa en geospatial databas, importera data från två olika källor och se resultaten i en applikation som heter QGIS. Den här guiden är uttryckligen skriven för linux-maskiner, om du arbetar på en annan plattform kanske vissa kommandon eller banor inte fungerar som förväntat.
För att se importerade data använder vi ett program som heter QGIS . Om du inte har det här programmet, installera det först , om du vill använda en annan visare eller geo-applikation (som ArcGIS) kan du hoppa över att installera QGIS.
Våra källor är New York City State Assembly Districts och New York City LION Street Map Database . Ladda ner lämpliga filer från de länkade platserna. Du bör också titta på metadata-avsnittet i materialet, eftersom det ger dig information om vilket koordinatsreferenssystem dessa filer använder.
För att starta, skapa en arbetsmapp "nycgis", kopiera de nedladdade filerna till platsen och packa upp arkiven.
mkdir nycgis
cd nycgis
cp ~/Downloads/nyad_16d.zip .
unzip ~/Downloads/nyad_16d.zip
cp ~/Downloads/nylion_16d.zip .
unzip ~/Downloads/nylion_16d.zip
I mappen "nycgis" bör du nu ha två mappar: "nyad_16d", "lejon" med flera filer.
När du arbetar med geodata är det av avgörande betydelse att känna till koordinatsreferenssystemet (CRS) för dina källdata och dina slutliga utgångsdata. I Metadata-avsnitten på de länkade platserna ovan ( Metadata: Assembly Districts , Metadata: LION Database ), kommer du att upptäcka att CRS för båda filerna är EPSG: 2263, ett koordinatsystem som används för att referera till nordöstra USA.
Låt oss anta att vi vill använda en annan CRS i vår databas. Det kan ha olika orsaker, vi kanske vill arbeta med en webbaserad geo-applikation i databasen till exempel. En vanlig CRS för denna typ av applikation är WGS: 84 (EPSG: 4326).
För att konvertera koordinatsystemen använder vi ett verktyg som heter ogr2ogr som är en del av GDAL-paketet. I arbetsmappen skapar vi först 2 mappar som representerar den avvisade datan och konverterar sedan våra data.
mkdir nyad_16d_proj_4326
ogr2ogr -f "ESRI Shapefile" ./nyad_16d_proj_4326/nyad_4326.shp ./nyad_16d/nyad_16d.shp -s_srs EPSG:2263 -t_srs EPSG:4326
mkdir nylion_16d_proj_4326
ogr2ogr -f "ESRI Shapefile" ./nylion_16d_proj_4326/ny_str_4326.shp ./nylion_16d/lion/lion.gdb/a0000000d.gdbtable -s_srs EPSG:2263 -t_srs EPSG:4326
Observera att vi bara använder filen som heter "a0000000d.gdbtable" i LION-databasen för våra ändamål. Syntaxen för ogr2ogr kommandot är som följer:
ogr2ogr -f [output-format] [output-file] [input-file] -s_srs [source crs] -t_srs [target crs]
Vi har nu två formfiler, projicerade i rätt CRS. För att kunna använda data i vår databas måste vi konvertera formfilerna till sql-statemens. För detta använder vi ett verktyg som heter shp2pgsql . Kör följande kommandon i arbetskatalogen:
shp2pgsql ./nyad_16d_proj_4326/nyad_4326.shp > nyad_4326.sql
shp2pgsql ./nylion_16d_proj_4326/ny_str_4326.shp > ny_streets_4326.sql
Filerna nyad_4326.sql och ny_streets_4326.sql är nu redo att användas i postgis. För att fortsätta och importera data skapar du en rumsligt aktiverad databas.
sudo su - postgres
createdb nycgis
psql -d nycgis
Kör i psql-sessionen:
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
Avsluta psql- och postgres-användarsessionerna med (CTRL + D). Och importera filerna med:
psql -f nyad_4326.sql -d nycgis
psql -f ny_streets_4326.sql -d nycgis
Databasen nycgis har nu 2 tabeller där de avvisade källorna importerades framgångsrikt.
För att verifiera detta: öppna QGIS
- använd lager > Lägg till lager > PostGIS-lager
- anslut till din databas
- välj dina tabeller
- (valfritt) ställa in styling för de nyskapade lagren.
Et voilà: Nu har du en rumsligt aktiverad databas med importerade, omprojekterade geodata.
