We bouwen een GeoQlik-mappingserver op basis van PostgreSQL en PostGis. De PostGIS-extensie inschakelen. Update van de Postgis-extensie

We deden een teamcursus op de universiteit en moesten PostGIS gebruiken. Feit is dat de cursussen niet uit de lijst met standaardtaken kwamen, maar onderdeel waren van een project dat ik aan het ontwikkelen was. Omdat de cursus een teamcursus is, is het niet verrassend dat het besturingssysteem van de teamleden anders was. Dat zeg ik uiteraard niet in dit geval teamwerk Iedereen zou een ander besturingssysteem moeten hebben, maar in ons geval bleek dat zo te zijn. De definitieve lijst met besturingssystemen bevatte het volgende: Windows XP, Windows 7, Ubuntu en LinuxMint. Er zijn geen fundamentele verschillen in het installatieproces. Die XP is Windows, die Seven is Windows. Dat Ubuntu GNU/Linux is, dat LinuxMint GNU/Linux is, ook gebaseerd op Ubuntu. Zowel daar als daar kun je zowel vanuit binaire bestanden als vanuit bronnen installeren. Bovendien hebben Unix-achtige systemen repositories. Tijdens mijn werk heb ik ook een tiental GNU/Linux-distributies gekweld voor evaluatiedoeleinden en op de een of andere manier besloot ik PostGIS op Mandriva te installeren. Ik weet niet meer waarom, maar om de een of andere reden moest ik iets langer sleutelen dan wanneer ik met andere distributies werkte. Op basis hiervan zal ik niet over Mandriva schrijven. Ik wilde het ook op Gentoo installeren en erover schrijven, maar tot nu toe heb ik geen tijd om ermee te rommelen.
Dus ter afsluiting van de lyrische introductie zal ik zeggen in welk besturingssysteem de installatie van PostGIS zal worden overwogen:


Windows XP

Met Windows zijn de zaken vrij eenvoudig. Download 2 binaire bestanden en voer ze één voor één uit. Het eerste binaire bestand is de Postgres-server zelf. Het kan worden gedownload van de officiële website. Het tweede binaire bestand is, zoals Captain Obvious suggereert, het PostGIS-gadget zelf. Je kunt het nemen. In het geval van Windows deden de PostgreSQL-ontwikkelaars alles verrassend goed. Bij het installeren van de server zelf zullen ze ook PgAdmin aan je koppelen, je wat wortels geven en StackBuilder er bovenop zetten. Met dit ding hoef je niet door de diepten van het internet te snuffelen en niet naar allerlei andere dingen te zoeken, zoals PostGIS en Slony-I. Het kan dus zijn dat u alleen het serverinstallatieprogramma wilt downloaden en StackBuilder het vuile werk wilt laten doen. Bovendien heeft niemand je verboden om alles vanaf de broncode te installeren :).
De ontwikkelaars hebben al geschreven over hoe je dit hele ding moet installeren en hebben, zoals in een kinderboek, alles geïllustreerd. Je kunt hier direct naar kijken. Het enige dat ik wil opmerken is dat het tijdens het installatieproces van PostGIS beter is om het selectievakje “Ruimtelijke database maken” niet uit te schakelen als je het leuk vindt als iemand wat werk voor je doet. Persoonlijk vind ik het prettig als het installatieprogramma voor mij wordt geïnstalleerd noodzakelijke functies enzovoort, en dan wordt er ook een sjabloon gemaakt, op basis waarvan je in de toekomst met twee of drie muisklikken databases kunt maken.
Opgemerkt moet worden dat het installatieprogramma versie 1.5 van PostGIS (of nieuwer) bevat. Als u na installatie databases met meer moet ondersteunen eerdere versies PostGIS, download vervolgens de binaire bestanden (archief) vanaf hier en voeg de inhoud van de mappen "lib" en "share" toe aan de Postgres-mappen met dezelfde naam (bijvoorbeeld C:\Program Files\PostgreSQL\8.4\)


Ubuntu 11.04
In Ubuntu hoef je niet ver te zoeken. We openden een terminal, voerden de onderstaande opdrachten in en kregen wat we nodig hadden, namelijk: server, client, bibliotheken, documentatie, postgis, grafische toepassing voor administratie.
sudo apt-get install postgresql-8.4 postgresql-client-8.4 postgresql-contrib-8.4 postgresql-doc-8.4 postgresql-8.4-postgis sudo apt-get install pgadmin3 Zoals je kunt zien aan de opdrachten, zal onze serverversie 8.4 zijn. Om preciezer te zijn, door een SQL-query uit te voeren
SELECTEER versie();
in mijn geval werd vastgesteld dat de versie 8.4.8 was.
  1. Vervolgens moet u de databaseserver zelf configureren. Zonder te willen kopiëren en plakken, geef ik hieronder een paar links waar dit heel duidelijk is geschreven.
  2. Engels artikel op hocuspokus.net.

De Russische vertaling met aantekeningen op welinux.ru.
Ik wil iets van mezelf toevoegen. Ten eerste: let bij het schrijven van directorypaden op de serverversie (je hoeft niet over versie 8.3 te beschikken, zoals in het voorbeeld)
Ten tweede, in het bestand "pg_hba.conf" de regel
# Database administratief inloggen door UNIX sockets lokaal all postgres ident sameuser was niet geliefd bij de server en moest worden vervangen door dit:

local all postgres md5 Dit betrof de installatie en configuratie van de server zelf. Nu moet je configureren PostGIS
(of beter gezegd: configureer het niet eens, maar koppel het aan de server). Laten we creëren nieuw sjabloon
en registreer het dialect op de server:
sudo su postgres createb postgitemplate createlang plpgsql postgitemplate Dit zal ons vragen om het gebruikerswachtwoord in te voeren.
psql -d postgitemplate -f /usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql psql -d postgitemplate -f /usr/share/postgresql/8.4/contrib/postgis-1.5/spatial_ref_sys.sql psql - d postgitemplate -f /usr/share/postgresql/8.4/contrib/postgis-comments.sql Ik zou willen opmerken dat de locatie van de scripts enigszins kan verschillen, maar meestal niet meer dan 1-2 vertakkingen. Nu hoeft u alleen nog maar de server opnieuw op te starten en kunt u aan de slag. Voor de duidelijkheid: laten we het maken via pgAdmin nieuwe server. Een voorbeeld van wat er gebeurde is weergegeven in de onderstaande figuur. Zoals je kunt zien, zijn er twee sjablonen: postgres en de postgitemplate die we hebben gemaakt.

  • Handleiding

Vrij recent ontstond de taak om te creëren software voor het genereren van cartografische tegels. Als basis viel de keuze op mapnik (er zijn weinig alternatieven voor). Het bleek dat er onderweg veel moeilijkheden waren, onverwachte fouten, maar het was niet mogelijk om min of meer duidelijke documentatie te vinden om alles turnkey op te zetten. Na een tijdje te hebben gerommeld, slaagde ik erin om vele harken te verzamelen die zich zouden kunnen voordoen en de zaak tot een zegevierend einde te brengen. Dit is waar het artikel over gaat.

De installatie is uitgevoerd op Ubuntu en Debian. Ik zeg meteen dat het natuurlijk beter is om de nieuwste versies te gebruiken softwareproducten, die soms niet in de repository's staan. Ze kunnen desgewenst handmatig worden gedownload van officiële websites.

Afgezien van de noodzakelijke afhankelijkheden, zullen we dit in het algemeen nodig hebben

  • PostgreSQL >= 8.4
  • PostGIS >= 1.5< 2
  • Python 2.x
  • Kaart >= 2
  • Osm2pgsql
  • Enige kennis van het werken met bash, Python en PostgreSQL

PostgreSQL installeren

Laten we eerst eens kijken welke versie van PostgreSQL we in onze repositories hebben:
$ apt-cache show postgresql
Indien versie 8.4 of hoger, installeer dan het pakket.
$ sudo apt-get install postgresql
Download anders het pakket van de officiële website www.postgresql.org/download/linux en installeer het. Vervolgens moeten we onze database configureren. Standaard is de gebruiker postgres en kunt u alleen inloggen via het besturingssysteem zelf. We gaan het echter een beetje anders doen: eerst openen we het bestand pg_hba.conf. U kunt de locatie achterhalen met behulp van het zoekhulpprogramma.

$ sudo bijgewerktb $ sudo zoek pg_hba.conf
Als u dit hulpprogramma niet hebt geïnstalleerd, installeer het dan
$ sudo apt-get install findutils localiseren
en herhaal de bovenstaande opdrachten. Voor mij bevindt dit bestand zich bijvoorbeeld op /etc/postgresql/8.4/main/pg_hba.conf. Open het en bewerk het.

$ sudo vi "/etc/postgresql/8.4/main/pg_hba.conf"
Wij vervangen:
$ lokaliseer alle alle ident # Autorisatie met behulp van OS-tools
Op
$ zoek alles alle wachtwoorden # Wachtwoordauthenticatie
Sla het bestand op en start PostgreSQL opnieuw.
$ sudo "/etc/init.d/postgresql-8.4 herstart"
Nu kunnen we elke databasegebruiker aanmaken en inloggen met een normaal wachtwoord zonder enige codering (superbeveiliging is niet van cruciaal belang voor ons). En we zullen het ook nodig hebben nieuwe basis gegevens voor onze OSM-gegevens.
Ga naar de console PostgreSQL-beheer.
$ su postgres $ psql postgres=# CREËER ROL osm MET SUPERUSER PASSWORD ‘my_password’ LOGIN; ROL MAKEN postgres=# DATABASE osm MAKEN; DATABANK MAKEN postgres=# \q
De gebruiker en database zijn aangemaakt.
Met het commando kunt u de functionaliteit van de nieuwe gebruiker controleren
$ psql -U osm -d osm -W
Als u na het invoeren van uw wachtwoord naar de PostgreSQL-console wordt geleid, is alles gelukt.

PostGIS installeren

We hebben PostGIS nodig. Mijn repository had versie 1.4. Omdat ik na installatie om de een of andere reden het bestand postgis.sql niet kon vinden, heb ik deze versie gesloopt en versie 1.5 gedownload van de officiële website. Daarom zullen we in dit artikel hetzelfde doen.
$ wget "http://postgis.refractions.net/download/postgis-1.5.4.tar.gz"
Archief uitpakken, monteren en installeren.
$ tar xvfz "./postgis-1.5.4.tar.gz" $ cd "./postgis-1.5.4" $ sudo ./configure $ sudo make install
Bij afwezigheid benodigde bibliotheken, installeer ze.
Installeer vervolgens een speciale taal in de database van osm.
$ createlang plpgsql osm -U osm -W
Nu moet u twee SQL-scripts uitvoeren in de database van osm: postgis.sql en 900913.sql.
Met behulp van het zoekprogramma vinden we hun locatie en voeren ze uit.
$ psql -U osm -d osm -W -f "/usr/share/postgresql/8.4/contrib/postgis-1.5/postgis.sql" $ psql -U osm -d osm -W -f "/usr/share/ osm2pgsql/900913.sql"
Let op hoe de praktijk heeft geleerd deze opdracht moet worden uitgevoerd als een gebruiker met PostgreSQL-superuser-rechten. Als u problemen ondervindt en fouten plant FOUT: type “geometrie” bestaat niet en probeer het vervolgens voordat u het uitvoert sql-bestand uitvoeren:
$ sudo ldconfig
en herhaal de opdracht start sql bestanden.
Alle! MET PostgreSQL instellen we zijn klaar. Laten we verder gaan met het installeren van Mapnik.

Mapnik installeren

$ sudo add-apt-repository ppa:mapnik/nightly-trunk $ sudo apt-get update $ sudo apt-get install libmapnik mapnik-utils python-mapnik
Als het systeem meldt dat “add-apt-repository: command niet gevonden", Dat
$ sudo apt-get install python-software-eigenschappen
En herhaal de drie bovenstaande opdrachten. Mapnik geïnstalleerd. Ik heb niet geschreven over de noodzaak Python-installaties, aangezien het in de meeste gevallen altijd al staat. Het controleren van het werk van mapnik.
$ python >>> mapnik importeren
Als er geen fouten zijn opgetreden, is alles goed gegaan. Laten we nu verder gaan met het installeren van osm2pgsql

Osm2pgsql installeren

$ sudo apt-get install osm2pgsql
Er blijft nog één belangrijk punt over. Het punt is dat het bestand default.style door osm2pgsql wordt geleverd voor export osm-gegevens naar de database, voldoet om de een of andere reden niet aan het nieuwste OSM-formaat. (Misschien weet iemand waarom?). Download het bestand juiste formaat.
$wget "http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/default.style"
Vervolgens vervangen we degene die standaard werd geleverd door osm2pgsql
$ sudo cp "./default.style" "/usr/share/osm2pgsql/default.style"

Installatie van scripts van OpenStreetMap voor het genereren van tegels

De OpenStreetMap-repository bevat veel scripts en hulpprogramma's over cartografische onderwerpen. We hebben een van de applicaties nodig die in Python zijn geschreven, die al alle scripts bevat die we nodig hebben om met mapnik te werken. Om het te downloaden moet je Subversion installeren.
$ sudo apt-get install subversion
Nu kunt u de OSM-applicatie veilig downloaden. Maak een map voor de locatie. Voor mij is het bijvoorbeeld /home/osm/mapnik en voer checkout uit.
$ mkdir "/home/osm/mapnik" $ svn co "http://svn.openstreetmap.org/applications/rendering/mapnik" "/home/osm/mapnik"
Nu voeren we het script uit dat zich in de applicatie bevindt.
$ bash /home/osm/mapnik/get-coastlines.sh
Hij zal voor ons downloaden benodigde bestanden met vormen van de wereld.
Nu moet je creëren XML-bestand stijlen. Dit gebeurt met het volgende commando:
$ python /home/osm/mapnik/generate_xml.py osm.xml my_osm.xml --dbname osm --user osm --password my_password --accept-none
Er wordt een my_osm.xml-bestand gemaakt met gegevens voor verbinding met PostgreSQL.

Penvoorbeeld

Nu is het moment aangebroken waarop u elk OSM-bestand kunt downloaden en op basis daarvan tegels kunt genereren. OSM-bestanden kunnen worden gedownload van de sites die worden gepresenteerd op de webpagina wiki.openstreetmap.org/wiki/Planet.osm
Je kunt natuurlijk het volledige Planet.osm-bestand downloaden, maar heb je het nodig? Uitgepakt weegt hij ruim 250 GB.

Laten we zeggen dat we Moskou-tegels op schaal 17 willen genereren.
Download het vereiste OSM-bestand.
$ wget "http://download.bbbike.org/osm/bbbike/Moscow/Moscow.osm.gz"
Nu kunnen we het naar de database exporteren.
$ sudo osm2pgsql -U osm -d osm Moskou.osm.gz
Alle! Het enige dat overblijft is het uitvoeren van het tegelgeneratiescript. Maar daarvoor moeten we het enigszins bewerken om de gewenste schaal en coördinaten aan te geven van welke tegels we willen ontvangen. Open het bestand /home/osm/mapnik/generate_tiles.py. We hebben de mapfile-variabele ingesteld om naar onze my_osm.xml te verwijzen.
mapfile = "/home/osm/mapnik/my_osm.xml"
Definieer vervolgens de variabele opnieuw die aangeeft waar u de tegels wilt plaatsen.
tegel_dir = "/home/osm/mapnik/all_tiles"
Het Moskou.osm-bestand dat we hebben gedownload, heeft vectorgegevenscoördinaten
xMin = 37,32000 yMin = 55,57000 xMax = 37,88000 yMax = 55,92000
We vinden de volgende regels in het script
bbox = (-180.0,-90.0, 180.0,90.0) render_tiles(bbox, kaartbestand, tegel_dir, 0, 5, "Wereld")
En vóór hen (om de bestaande code niet te overschrijven) schrijven we:
bbox = (37.32000, 55.57000, 37.88000, 55.92000) render_tiles(bbox, mapfile, tegel_dir, 17, 17, "Moskou") exit()
Het is raadzaam om exit() zo te schrijven dat het script, na het genereren van Moskou-tegels, niet doorgaat met het genereren van de hele wereld.
Parameters 4 en 5 van de functie render_tiles stellen de schaal in waarop we tegels zullen genereren. IN in dit geval we kozen voor slechts 17 schaal.

Opslaan en uitvoeren.
$ python /home/osm/mapnik/generate_tiles.py
Het proces van het genereren van tegels begint.

Ook een prima handleiding vind je hier

Ik kwam onlangs een interessante tegen technisch probleem bij het werken met geoanalyse GeoQlik. Voor mijn project was het nodig om een ​​enorme hoeveelheid kaartgegevens te integreren, die voortdurend werden bijgewerkt.

Het probleem oplossen door voortdurend gegevens naar de GeoQlik-server te uploaden is uiteraard irrationeel. En als er meerdere servers zijn, groeit de complexiteit van het probleem exponentieel. Vandaag zal ik je vertellen hoe je deze taak snel kunt aanpakken. Namelijk, hoe u een kleine kaartserver kunt opzetten op basis van PostgreSQL En Nu moet je configureren voor later gebruik door de GeoQlik-server.

PostgreSQL:installatie

PostGIS: installatie

Installatie van PostGIS kan semi-automatisch worden gedaan via Stack Builder en door het PostGIS-pakket direct te downloaden. De installatiemethoden verschillen alleen in de manier waarop het PostGIS-installatieprogramma wordt verkregen. In het eerste geval zal Stack Builder zichzelf starten: “Start/PostgreSQL 8.4/Stack Builder Application”. Laten we deze optie eens nader bekijken:


Als jij besluit download het PostGIS-installatieprogramma op jezelf dan nieuwste versie PostGIS kan worden gedownload van de website.

Voortgang installatie:


Met “Ruimtelijke database maken” kunt u automatisch een ruimtelijke database maken. Vervolgens zullen we het proces bekijken van het handmatig maken van een dergelijke database, zonder toevlucht te nemen tot de diensten van het PostGIS-installatieprogramma, dus hier zullen we dit item uitschakelen.


Klik op “Volgende” om de installatie te voltooien. Hiermee is de installatie van PostGIS voltooid!

PostGIS: database-opstelling


Het proces van het maken van een ruimtelijke database zonder gebruik van een sjabloon is voltooid. Dus op op dit moment Tegen de tijd dat we een ruimtelijke database “postgis” hebben, klaar om te worden gevuld met gegevens.

PostGIS: het vullen van de database

Om de database te vullen, moet u het hulpprogramma gebruiken PostGIS 2.0 Vormbestand En DBF Lader Exporteur(het werd samen met de Postgis-extensie geïnstalleerd, die we via Stack Builder installeerden)

In ons geval was het noodzakelijk om gegevens van de gis-lab.info-server te exporteren en naar onze server te uploaden.

Exporteren

  1. Start het hulpprogramma PostGIS 0 Shapefile en DBF Loader Exporter(je kunt het vinden in Start) en selecteer het tabblad Exporteren
  2. Klik op de knop 'Verbindingsdetails bekijken...' en voer de servergegevens in
    gis-lab.info
  3. Klik op “OK” en we zien dat de verbinding succesvol was.
  4. Klik vervolgens op de knop “Tabel toevoegen” en selecteer de lijst met tabellen die u wilt exporteren in het pop-upvenster (in ons geval zijn dit ru_adm3_federal en ru_adm4_region).
  5. Klik op "OK", nu worden ze weergegeven in het hoofdvenster van het hulpprogramma en klik vervolgens op de knop "Exporteren".
  6. We selecteren het pad en zorgen ervoor dat de upload wordt uitgevoerd in het “.shp”-formaat (shapefiles):
  7. Er verschijnt een statusbalk, wacht tot het einde is bereikt.
  8. Alles succesvol gedownload!

Nu moet je het resultaat controleren.


Dat is het! De taak is voltooid, u kunt beginnen met het opzetten van rapporten in GeoQlik.

Tot slot wil ik u er één geven nuttige hulpbron, waarop administratieve afdelingen van alle landen zijn te vinden.

Veel succes met geoanalyse!

Materiaal van WiKi - UserSide

Lokaal

Zorg ervoor dat uw systeem is ingesteld op de landinstelling die in de database zal worden gebruikt. Bijvoorbeeld, ru_RU.utf8

Voer de opdracht locale uit om te zien wat de standaardlandinstelling op het systeem is geïnstalleerd. Als u van plan bent een andere landinstelling dan de systeemtaal in de database te gebruiken, zorg er dan voor dat deze aan het systeem wordt toegevoegd door de opdracht locale -a uit te voeren. Uiteindelijk is het belangrijk dat de lijst met landinstellingen die door de laatste opdracht wordt uitgevoerd, de landinstelling is die u in de database wilt gebruiken.

Als u er na het uitvoeren van de locale van overtuigd bent dat de juiste locale is geïnstalleerd die u in de database wilt gebruiken, ga dan verder met de installatiesectie.

Als u van plan bent de databaselandinstelling te gebruiken die dezelfde is als de standaardinstelling op het systeem, en u hiervoor de systeemlandinstelling moet wijzigen. Om dit te doen, voert u de opdracht sudo dpkg-reconfigure locales uit en selecteert u de vereiste landinstelling. Zorg er vervolgens voor dat deze standaard op het systeem is geïnstalleerd.

Als u van plan bent een andere databaselandinstelling dan de systeemtaal te gebruiken en deze staat niet in de lijst met geïnstalleerde landinstellingen, voeg dan de naam van de landinstelling toe aan het bestand sudo nano /etc/locale.gen (of verwijder eenvoudigweg het commentaar op de vereiste regel) . Sla vervolgens het bestand op en voer de opdracht sudo locale-gen uit. Controleer of de vereiste landinstelling is toegevoegd door de opdracht locale -a uit te voeren.

PostgreSQL installeren

Officiële instructies voor het toevoegen van een repository en het installeren onder verschillende systemen beschikbaar op https://www.postgresql.org/download/

Installatie-instructies voor Debian-achtige Linux-distributies worden hier ook beschreven.

De standaardrepository van Debian bevat oude versie PostgreSQL. Om te kunnen installeren nieuwe versie, moet je officieel toevoegen PostgreSQL-opslagplaats. Loop:

Wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" sudo apt-get update sudo apt-get install postgresql-10

Hiermee is de installatie voltooid.

PostgreSQL instellen

Er worden verschillende instellingen gebruikt om te configureren configuratiebestanden bevindt zich in de map /etc/postgresql/10/main

De volgende configuratie van de twee bestanden postgresql.conf en pg_hba.conf is alleen nodig als USERSIDE en de PostgreSQL DBMS zich op verschillende knooppunten bevinden!

Als het DBMS en USERSIDE zich op hetzelfde knooppunt bevinden, ga dan direct naar de volgende sectie over het maken van een gebruiker en database.

postgresql.conf

Het bestand bevat PostgreSQL-serverinstellingen.

  1. Open het bestand sudo nano /etc/postgresql/10/main/postgresql.conf
  2. Zoek het instellingenblok VERBINDINGEN EN AUTHENTICATIE
  3. Verwijder het commentaar bij de parameter listen_addresses en stel de waarde in op een of meer door komma's gescheiden IP-adressen waarop de server verbindingen van clients accepteert. Het asterisk-symbool is toegestaan.

Je kunt er meer over lezen officiële documentatie: https://postgrespro.ru/docs/postgresql/10/runtime-config-connection.html

Start vervolgens de server sudo service postgresql restart opnieuw op

pg_hba.conf

Het bestand bevat instellingen voor gebruikersauthenticatie op basis van hostnamen. Het bestandsformaat is een verzameling records, één per regel, bestaande uit verschillende velden, gescheiden door spaties. Details over de installatie dit bestand te lezen via de link: https://postgrespro.ru/docs/postgrespro/10/auth-pg-hba-conf.html

  1. Open het bestand sudo nano /etc/postgresql/10/main/pg_hba.conf
  2. Voeg helemaal onderaan een regel toe die toegang toestaat (geef het IP-adres op van het knooppunt waarop USERSIDE is geïnstalleerd)

host gebruikerszijde alle IP-adressen-gebruikerszijde md5

Lees vervolgens de configuratie opnieuw sudo-opdracht service postgresql herladen

Fijnafstemming

Wij raden aan om te maken fijnafstemming PostgreSQL DBMS, dat afhankelijk is van de bronnen van uw server. Omdat de parameters telkens afzonderlijk moeten worden geselecteerd, publiceren we hier bewust de aanbevolen waarden niet.

Via de volgende links kunt u vertrouwd raken met de methodologie voor het opzetten van het DBMS:

Configuratiehulpmiddelen:

Een juiste configuratie kan de prestaties van het DBMS aanzienlijk verbeteren, maar wees uiterst voorzichtig.

Een gebruiker en database aanmaken

In de terminologie van PostgreSQL is een “gebruiker” een DBMS-rol met LOGIN-toestemming (databaseverbindingen). In deze instructie, in plaats van te gebruiken SQL-query's U wordt gevraagd consoleopdrachten te gebruiken.

Om een ​​gebruiker aan te maken, voert u de volgende opdracht uit (hier gebruikerszijde- database-gebruikersnaam):

Sudo -u postgres createuser userside -P

Het systeem zal om een ​​wachtwoord vragen gebruiker die wordt aangemaakt, die tweemaal moet worden ingevoerd.

Maak nu de database aan. Er wordt een database aan de gebruikerszijde gemaakt, waarvan de eigenaar de gebruikerszijde is.

Sudo -u postgres gemaaktb -e -E "UTF-8" -l "ru_RU.UTF-8" -O gebruikerszijde -T sjabloon0 gebruikerszijde

De PostGIS-extensie inschakelen

De uitbreiding is nodig voor het verwerken van geometrische gegevenstypen, dit zijn objecten op de kaart.

Eerst moet u de PostGIS-extensie http://postgis.net/install/ installeren

Installatie op Debian

Op Debian-achtige distributies voert u de opdracht uit

Sudo apt-get installeer postgis

Installatie op FreeBSD

FreeBSD heeft een poort /usr/ports/databases/postgis

Na de installatie moet je naar de map gaan

Cd /usr/local/share/postgresql/contrib/postgis-*

en voer daar uit:

Sudo -u postgres psql -f "postgis.sql" sudo -u postgres psql -f "ruimtelijke_ref_sys.sql"

Een database-extensie maken

Zodra PostGIS is geïnstalleerd, moet u het inschakelen voor de database gebruikerszijde als volgt:

Sudo -u postgres psql -d userside -c "CREATE EXTENSION postgis"

De extensie wordt geïnstalleerd en verbonden met de database aan de gebruikerszijde.

Update van de Postgis-extensie

Houd er rekening mee dat als u een update uitvoert systeemcomponent Postgis, moet u ook de extensie zelf in de database als volgt bijwerken:

Sudo -u postgres psql -d userside -c "ALTER EXTENSION postgis UPDATE"

Veelgestelde vragen

Er treedt een fout op: Sudo: add-apt-repository: opdracht niet gevonden.

Oplossing: sudo apt-get install software-properties-common

Er treedt een fout op: Kon het extensiebeheerbestand "/usr/share/postgresql/10/extension/postgis.control" niet openen

Oplossing: Installeer de volgende componenten:

Sudo apt installeer postgresql-10-postgis-2.4 postgresql-10-postgis-2.4-scripts

Sinds de universiteit heb ik gezworen nooit betrokken te raken bij GIS en alles wat daarmee samenhangt. En sinds de tijd van dezelfde universiteit achtervolgen al deze GIS mij voortdurend :) Bij een van mijn vorige banen moest ik werken met de combinatie MapInfo + Oracle. Nu moest ik de open source-projecten QuantumGIS + PostGIS proberen.
Laten we beginnen met het installeren van al deze dingen.

Dus, in volgorde.
KwantumGIS- in wezen gratis analoog MapInfo of ArcGIS. Meer details op Wikipedia
Nu moet je configureren- een extensie voor PostgreSQL waarmee u georuimtelijke gegevens kunt opslaan en verwerken. Dit betekent dat PostGIS op zichzelf niet zal werken. Hij heeft PostgreSQL nodig. Tegenwoordig is het beter om PostgreSQL 9.1 te installeren (je kunt zien hoe je het installeert en configureert in mijn artikel).
Dienovereenkomstig moeten alle andere componenten worden geïnstalleerd, rekening houdend met de PostgreSQL-versie
pgRouting- een set methoden om het kortste pad te vinden met behulp van algoritmen als Dijkstra en . Meer details over de mogelijkheden vindt u op de projectwebsite

PostGIS en QuantumGIS installeren

Voor degenen die met GIS in Ubuntu werken, is er goede bewaarplaats UbuntuGIS. Het toevoegen is eenvoudig:

Sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get-update

In deze repository zijn we geïnteresseerd in PostGIS en QuantumGIS.

Sudo apt-get installeer postgresql-9.1-postgis
sudo apt-get install qgis

PostGIS wordt geïnstalleerd als een uitbreiding op PostgreSQL. Om een ​​database te creëren die is ontworpen voor het opslaan en verwerken van georuimtelijke gegevens, is het daarom noodzakelijk om de postgis-extensie aan de bestaande database toe te voegen. Dit gebeurt in pgAdmin. Zoek uw database in de boomstructuur en het knooppunt Extensies daarin en voeg daar de postgis-extensie toe. Als een dergelijke extensie niet bestaat, probeer dan de branch bij te werken met uw database, en als dat niet helpt, verbreek dan de verbinding en sluit u opnieuw aan bij de server.

PgRouting installeren

We halen pgRouting uit de Georepublic-teamrepository.

Sudo add-apt-repository ppa:georepublic/pgrouting
sudo apt-get-update
sudo apt-get install postgresql-9.1-pgrouting

De installatie van pgRouting op de SIM is niet voltooid. Het is noodzakelijk om speciale scripts in een bepaalde volgorde uit te voeren.
Alle scripts bevinden zich op het pad /usr/share/postlbs/
De volgorde is als volgt:

  1. routing_core.sql
  2. routing_core_wrappers.sql
  3. routing_topology.sql
  4. overeenkomende.sql

U kunt ze openen in pgAdmin en daar uitvoeren. Tegelijkertijd kunt u vertrouwd raken met de inhoud van deze scripts.
Voor wie er te cool voor is grafische schillen;) moet gebeuren de volgende volgorde commando's:

Psql -U postgres -f /usr/share/postlbs/routing_core.sql
psql -U postgres -f /usr/share/postlbs/routing_core_wrappers.sql
psql -U postgres -f /usr/share/postlbs/routing_topology.sql
psql -U postgres -f /usr/share/postlbs/matching.sql

Wanneer u deze opdrachten uitvoert, kunt u een fout tegenkomen

Psql: FATAL: Peer-authenticatie mislukt voor gebruiker "postgres"

Dit betekent dat u deze opdrachten niet op de server kunt uitvoeren omdat u niet over voldoende rechten beschikt. Hier kan enige verwarring ontstaan: het lijkt erop dat de SQL-opdracht wordt uitgevoerd als de postgres-beheerder, maar tegelijkertijd zijn er niet voldoende rechten. Het punt is dat de psql-opdracht zelf wordt gestart namens uw huidige gebruiker, en hij kan op zijn beurt niet eens verbinding maken met PostgreSQL (laat staan ​​voordat hij opdrachten heeft uitgevoerd). Er is een uitweg uit deze situatie: voer psql uit als de postgres-gebruiker

Sudo -u postgres psql -U postgres -f /usr/share/postlbs/routing_core.sql

De overige scripts worden op dezelfde manier gestart.
Nou, dat is alles. In de toekomst zal ik proberen een bericht te schrijven over hoe je dit hele ding kunt gebruiken bij het zoeken het kortste pad(vooral omdat Russische documentatie hierover erg moeilijk te vinden is)