.
QGIS gebruikt de bibliotheek OGR om vectorgegevens te kunnen lezen van en te schrijven naar ESRI Shapefiles, MapInfo en Microstation bestandsformaten; PostGIS, SpatiaLite, MSSQL Spatial en Oracle Spatial databases en vele andere formaten. Ondersteuning voor GRASS vector en PostgreSQL wordt verschaft door eigen QGIS plug-ins voor gegevensverschaffing. De vectorgegevens kunnen ook in leesmodus in QGIS geladen worden vanuit gecomprimeerde zip en gzip-archiefbestanden. Op het moment van schrijven van dit document worden 69 vectorindelingen ondersteund door de bibliotheek OGR (zie OGR-SOFTWARE-SUITE Verwijzingen naar literatuur en web). De volledige lijst is beschikbaar op http://www.gdal.org/ogr_formats.html.
Notitie
Niet alle genoemde indelingen zullen, om verschillende redenen, zomaar werken in QGIS. Sommige indelingen vereisen bijvoorbeeld de aanwezigheid van externe commerciële functiebibliotheken, of de installatie van GDAL/OGR op uw besturingssysteem is niet gebouwd om de indeling die u wilt gebruiken te ondersteunen. Alleen die indelingen die goed zijn getest zullen verschijnen in de lijst van bestandstypen wanneer een vectorbestand in QGIS wordt geladen. Overige niet geteste indelingen kunnen worden geladen door *.* te selecteren.
Het werken met vectorgegevens voor GRASS is beschreven in Integratie van GRASS GIS.
Dit deel beschrijft hoe u kunt werken met enkele veel voorkomende vectorindelingen: ESRI shapefiles, PostGIS lagen, Spatialite lagen, OpenStreetMap vector en Comma Separated-gegevens (CSV = tekstgescheiden gegevenstabel). Veel van de beschikbare gebruikersfuncties in QGIS werken precies hetzelfde voor ondersteunde vectorindelingen. Dit is een uitgangspunt geweest bij het ontwerp van QGIS en betreft o.a. de volgende functies, het identificeren, het selecteren, het toevoegen van labels en het werken met attributen.
De standaard vector bestandsindeling die gebruikt wordt in QGIS is het ESRI-shapefile. De ondersteuning hiervoor wordt mogelijk gemaakt door de OGR Simple Feature Library ( http://www.gdal.org/ogr/ ).
Een shapefile bestaat uit meerdere bestanden. De volgende drie zijn noodzakelijk:
.shp bestand dat de geometrieën van de objecten bevat
.dbf bestand dat de attribuutwaarden bevat in de indeling voor dBase
.shx het indexbestand
Shapefiles kunnen ook een bestand bevatten met de bestandsextensie .prj, het projectiebestand dat informatie over het gebruikte coördinatensysteem bevat. Alhoewel een projectiebestand erg handig is, is het niet noodzakelijk. Een shapefile gegevensset kan daarnaast nog meer bestanden bevatten. Voor verdere details, bekijk de technisch specificaties van ESRI op http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf.
Voor het laden van een shapefile, start QGIS en klik op het pictogram Vectorlaag toevoegen in de werkbalk of gebruik de snelkoppeling Ctrl+Shift+V. Dit zal een nieuw scherm openen (zie figure_vector_1).
Figure Vector 1:
Selecteer, uit de beschikbare opties, het keuzerondje Bestand. Klik vervolgens op de knop [Bladeren]. Dit zal een standaardmenu voor bestandskeuze openen (zie figure_vector_2) waarmee u kunt bladeren naar het gewenste shapefile of een andere door QGIS ondersteunde vectorindeling. De keuzelijst Bestandstypen geeft de mogelijkheid om te filteren op door OGR ondersteunde bestandsindelingen.
U kunt ook, indien gewenst, de codering van de tekenset meegeven voor het te openen shapefile.
Figure Vector 2:
Selecteer een shapefile uit de lijst en selecteer de knop [Open] zodat deze geladen wordt in QGIS. Figure_vector_3 toont QGIS na het laden van de shapefile alaska.shp.
Figure Vector 3:
Tip
Kleuren van kaartlagen
Wanneer u een kaartlaag toevoegt, zullen de objecten getoond worden in een willekeurige kleur. Wanneer u meer dan één kaartlaag toevoegt, zal elke kaartlaag een andere kleur krijgen.
Eenmaal geladen, kunt u de kaartlaag bestuderen met de functies voor kaartnavigatie. Open, om de symbologie van een kaartlaag te wijzigen, het scherm Laag-eigenschappen door te dubbelklikken op de naam van de kaartlaag in de legenda, of door de laag te selecteren en met de rechter muisknop het snelmenu op te roepen en daarin te kiezen voor Eigenschappen. Zie ook Menu Stijl voor meer informatie over het toekennen van symbologie aan vectorlagen.
Tip
Het laden van kaartlagen en projecten van exerne drives onder OS X
Onder OS X, worden de extern toegevoegde USB-sticks en externe harde schijven niet getoond onder Bestand ‣ Open project zoals men zou verwachten. We werken aan een meer OSX-eigen menu Openen/Opslaan om dit te verhelpen. U kunt echter, als tijdelijke oplossing, /Volumes invullen in het vak Bestandsnaam en op Enter drukken. Vervolgens kunt u nu ook de externe gekoppelde geheugeneenheden, zoals USB sticks, benaderen.
U kunt een ruimtelijke index maken om de uitvoering van het werken met shapefiles te verbeteren. Een ruimtelijke index zal er voor zorgen dat het kaartvenster veel sneller getekend wordt, zodat u ook sneller kunt in- en uitzoomen of het beeld kunt verschuiven. Ruimtelijke indexen die gebruikt worden door QGIS hebben de extensie .qix na de bestandsnaam-.
Gebruik de volgende stappen om de index te maken:
Laad een shapefile door het pictogram Vectorlaag toevoegen in de werkbalk te selecteren of gebruik de snelkoppeling Ctrl+Shift+V.
Open het menu Laag-eigenschappen door in de legenda te dubbelklikken op de naam van het shapefile of, na selectie in de legenda, met de rechter muisknop het snelmenu te openen en hierin Eigenschappen te kiezen.
In het tabblad Algemeen selecteer de knop [Ruimtelijke index maken].
Als u een shapefile laadt met een .prj bestand en QGIS is niet in staat om het Coördinaten referentiesysteem van dat bestand te lezen, dan kunt u zelf handmatig de goede CRS projectie instellen op het tabblad Algemeen van het scherm Laag-eigenschappen voor die laag via de knop [Opgeven...]. Dit is nodig omdat de gegeven definitie in het bestand .prj vaak niet alle benodigde parameters voor de projectie bevat, die gebruikt worden in QGIS en wel voorkomen in de lijst van het dialoogvenster van CRS.
Om die reden worden er bij het aanmaken van een nieuwe shapefile met QGIS, twee verschillende projectiebestanden aangemaakt. Een bestand .prj met een kleiner aantal projectieparameters, compatibel met ESRI software, en een bestand .qpj , dat een uitgebreidere set van parameters bevat van de gebruikte CRS. Wanneer QGIS een bestand .qpj aantreft, zal dat gebruikt worden in plaats van het bestand .prj .
Klik, om een MapInfo te laden, op de knop Vectorlaag toevoegen of type Ctrl+Shift+V, verander het bestandstype van Bestanden van type : naar ‘Mapinfo File [OGR] (*.mif *.tab *.MIF *.TAB)’ en selecteer de MapInfo-laag die dient te worden geladen.
Druk, om een ArcInfo Binary Coverage te laden, op het pictogram Vectorlaag toevoegen in de werkbalk of gebruik de snelkoppeling Ctrl+Shift+V om het dialoogvenster Vectorlaag toevoegen te openen. Selecteer nu eerst de status van het keuzerondje Map. Selecteer vervolgens in de keuzelijst bestandtypen Type Arc/Info Binary Coverage . Navigeer vervolgens naar de map die de Arc/Info Coverage-bestanden bevat en selecteer deze.
Op dezelfde wijze kunt u ook map-gebaseerde vectorbestanden laden in de indeling UK National Transfer Format, als ook de ruwe indeling TIGER van het US Census Bureau.
Tabulaire gegevens is een veel en breed gebruikte indeling vanwege zijn eenvoud en leesbaarheid – gegevens kunnen zelfs in een tekstbewerkingsprogramma worden gelezen en bewerkt. Een tekstgescheiden bestand is een tabel met attributen waarin elke kolom wordt gescheiden door een gedefinieerd teken en elke regel wordt gescheiden door een regeleinde. De eerste regel bevat gewoonlijk de namen van de kolommen. Een veelgebruikt type tekstgescheiden bestand is een CSV (Comma Separated Values = komma gescheiden waarden), waarin elke kolom wordt gescheiden door een komma.
Dergelijke gegevensbestanden kunnen ook positionele informatie bevatten in twee belangrijke vormen:
Als puntcoördinaten in afzonderlijke kolommen
Als welbekende tekst (WKT) weergave van geometrie
QGIS stelt u in staat een gescheiden tekstbestand te laden als een laag of ordinale tabel. Controleer echter eerst of het bestand voldoet aan de volgende vereisten:
Het bestand moet een gescheiden kopregel met veldnamen hebben. Dit moet de eerste regel in het tekstbestand zijn.
De kopregel moet veld(en) bevatten met een definitie voor geometrie. Dit/Deze veld(en) mogen elke naam hebben.
De X- en Y-coördinaten (als de geometrie wordt gedefinieerd door coördinaten) moeten zijn gespecificeerd als getallen. Het coördinatensysteem is niet belangrijk.
Als voorbeeld importeren wij het valide hoogtepunten tekstbestand elevp.csv dat onderdeel is van de QGIS voorbeeld gegevensset (zie Voorbeeldgegevens):
X;Y;ELEV
-300120;7689960;13
-654360;7562040;52
1640;7512840;3
[...]
Enkele opmerkingen over het tekstbestand:
Het voorbeeld tekstbestand gebruikt ; (puntkomma) als scheidingsteken. Elk teken kan gebruikt worden als scheidingsteken.
De eerst rij is de kopregel. Deze bevat de velden X, Y en ELEV.
Er zijn geen aanhalingstekens (") gebruikt voor de tekstvelden.
De X-coördinaten staan onder het veld X.
De Y-coördinaten staan onder het veld Y.
Selecteer het pictogram Tekstgescheiden kaartlaag toevoegen in de werkbalk Kaartlagen om het dialoogvenster Maak een kaartlaag uit een tekstgescheiden bestand te openen zoals getoond in figure_delimited_text_1.
Figure Delimited Text 1:
Selecteer eerst het bestand (bijv. qgis_sample_data/csv/elevp.csv) via de knop [Bladeren...]. Als het bestand is geselecteerd, zal QGIS proberen om het bestand op te delen in records met velden met het laatst gebruikte scheidingsteken, in dit geval een puntkomma (;). Het is belangrijk om eerst het goede scheidingsteken te selecteren om vanuit een tekstbestand de afzonderlijke velden te kunnen bepalen. U kunt een scheidingsteken opgeven middels het keuzerondje Zelfgekozen scheidingsteken en door dan een teken in te vullen in het veld Overige scheidingstekens, of door het activeren van het keuzerondje Reguliere expressie scheidingsteken te kiezen en de tekst op te geven in het tekstveld Expressie. Om het teken Tab te kiezen als scheidingsteken, gebruik dan \t (dit is de reguliere expressie voor het teken tabulator).
Activeer, als het bestand is ingelezen, het keuzerondje Punt coördinaten bij Geometrie definitie en kies de velden X en Y via de keuzelijsten. Wanneer de coördinaten zijn gegeven in graden/minuten/seconden, activeer dan het keuzevak DMS coördinaten.
Geef tenslotte de nieuwe laag een naam (bijv., elevp) zoals getoond in figure_delimited_text_1 . Na het selecteren van [OK] wordt de laag toegevoegd aan de kaart. Het tekstgescheiden bestand gedraagt zich als elke andere kaartlaag in QGIS.
Men kan de spaties voor en achter een veld verwijderen door het keuzevak Verwijder spaties voor/na velden. Men kan Sla lege velden over voor elk record gebruiken. Men kan aangeven dat de komma het decimale scheidingsteken is door het keuzevak Decimale scheidingsteken is de komma te activeren, anders is de punt het decimale scheidingsteken.
Indien ruimtelijke informatie wordt weergegeven als WKT, activeer dan de optie Well Known Text en selecteer het veld met de definitie voor WKT voor objecten punt-, lijn- of polygoon. Als het bestand geen ruimtelijke gegevens bevat, activeer dan Geen geometrieën (alleen attributentabel) en het zal worden geladen als een ordinale tabel.
Aanvullend kunt u inschakelen:
In recente jaren heeft het project OpenStreetMap enorm aan populariteit gewonnen omdat in vele landen geen gratis geo-gegevens zoals digitale wegenkaarten beschikbaar zijn. Het doel van het project OSM is om een gratis bewerkbare kaart van de wereld te maken vanuit GPS-gegevens, lucht-/satellietfotografie of lokale kennis. QGIS verschaft ondersteuning voor gegevens van OSM om dat doel te ondersteunen.
Importeren van OpenStreetMap is een standaard functionaliteit van QGIS.
Open, om verbinding te maken met de OSM server en gegevens te downloaden, het menu Vector ‣ OpenStreetMap ‣ Gegevens downloaden. Deze stap kan worden overgeslagen als u al een .osm XML-bestand hebt verkregen via JOSM, de Overpass API of via een andere bron.
Het menu Vector ‣ OpenStreetMap ‣ Importeer topologie van XML zal uw .osm-bestand omzetten naar een database van SpatiaLite en daarmee verbinding maken.
Het menu Vector ‣ OpenStreetMap ‣ Topologie naar Spatialite exporteren geeft de mogelijkheid om de databaseverbinding te openen, het type gegevens te selecteren dat u wilt (punten, lijnen of polygonen) en de tags te kiezen om te importeren. Dit zal een SpatiaLite geometrie-laag aanmaken die u kunt toevoegen aan het project door te klikken op het pictogram op de werkbalk SpatiaLite-laag toevoegen of SpatiaLite-laag toevoegen... uit het menu Kaartlagen ‣ Laag toevoegen , (zie ook SpatiaLite-kaartlagen).
PostGIS-lagen zijn opgeslagen in een database van PostgreSQL. De voordelen van PostGIS zijn de ruimtelijke indexering, filters en de uitgebreidere bevragingsmogelijkheden waarin PostGIS voorziet. Wanneer men gebruik maakt van PostGIS, werken vectorfuncties zoals selecteren en het identificeren nauwkeuriger dan dat zij doen met OGR-lagen in QGIS.
De eerste keer dat u een gegevensbron voor PostGIS gebruikt, dient u een verbinding te maken naar de database van PostgreSQL die de gegevens bevat. Begin met het klikken op de knop op de werkbalk PostGIS-laag toevoegen, selecteer de optie PostGIS-laag toevoegen... uit het menu Kaartlagen ‣ Laag toevoegen, of typ Ctrl+Shift+D. U kunt ook het dialoogvenster Vectorlaag toevoegen openen en Database selecteren. Het dialoogvenster PostGIS-tabel(len) toevoegen zal worden weergegeven. Klik op de knop [Nieuw] om het dialoogvenster Nieuwe PostGIS-verbinding aanmaken weer te geven om toegang te krijgen tot het beheren van de verbindingen. De voor de verbinding vereiste parameters zijn:
Naam: Een naam voor deze verbinding. Mag gelijk zijn aan Database.
Service: Service-parameter die gebruikt kan worden als alternatief voor Host/Poort (en eventueel ook Database). Dit kan gedefinieerd worden in pg_service.conf.
Host: Naam van de host van de database. De naam van de host moet dezelfde zijn als waarmee u deze kunt vinden via een telnet-verbinding of hoe u deze kunt pingen. Wanneer de database op dezelfde computer staat als QGIS, gebruik hier dan ‘localhost’.
Poort: Poortnummer waar de database van PostgreSQL naar luistert. De standaardpoort is 5432.
Database: Naam van de database.
SSL mode: De instelling van het opzetten van een beveiligde SSL-verbinding met de server. De uitvoering van het opbouwen van kaarten in QGIS is overigens veel beter door SSL uit te schakelen. Dit zijn de opties:
Uitschakelen: alleen verbinden zonder SSL-versleuteling
Toestaan: Probeer een verbinding zonder SSL-versleuteling, als dat mislukt probeer dan met SSL.
Voorkeur (=standaard): Probeer een verbinding met SSL-versleuteling, als dat mislukt probeer dan een verbinding zonder SSL.
Vereist: Alleen verbinden met SSL-versleuteling.
Gebruikersnaam: Gebruikersnaam om toegang te krijgen tot de database.
Wachtwoord: Wachtwoord dat hoort bij Gebruikersnaam om toegang te krijgen tot de database.
Optioneel kunnen de volgende aanvinkvakjes worden geactiveerd:
Wanneer alle veldparameters en opties zijn ingesteld, kunt u de verbinding testen met de knop [Test verbinding].
Na het maken van een verbinding met één of meerdere PostgreSQL databases, kunt u een kaartlaag laden vanuit de database van PostgreSQL. Uiteraard moet deze wel eerst kaartgegevens bevatten. Zie Het importeren van gegevens in PostgreSQL voor een uitleg over hoe u gegevens in de database importeert.
Voer de volgende stappen uit om een laag te laden vanuit PostGIS:
Selecteer, als het venster PostGIS Tabel(len) toevoegen nog niet geopend is, in de werkbalk de knop PostGIS-laag toevoegen... in het menu Kaartlagen ‣ Laag toevoegen of met de snelkoppeling Ctrl+Shift+D.
Kies een aangemaakte verbinding vanuit de keuzelijst en druk op [Verbinden].
Selecteer of deselecteer het keuzevak Ook tabellen zonder geometrie tonen
Optioneel kunt u het keuzevak Zoek opties selecteren om een selectie te maken van objecten die geladen dienen te worden of gebruik de knop [Filter instellen] om het venster te openen waarmee u een Filter kunt instellen middels een zoekopdracht.
Zoek naar de laag/lagen die u wilt laden uit de lijst van beschikbare tabellen met gegevens.
Selecteer deze door er op te klikken. U kunt meerdere lagen selecteren door de Shift-toets in te drukken tijdens het klikken. Zie Querybouwer voor meer informatie over hoe de PostgreSQL Querybouwer te gebruiken om de laag verder te definiëren.
Klik op de knop [Toevoegen] om de laag toe te voegen aan de legenda en het kaartbeeld.
Tip
PostGIS-lagen
Normaal gesproken bevat een PostGIS-laag een veld voor geometrie. Maar vanaf versie 0.9.0 is het ook mogelijk om in QGIS PostGIS-lagen zonder veld voor geometrie te laden. Daarnaast is het ook mogelijk om gedefinieerde SQL Views te laden. Dit biedt krachtige mogelijkheden om gegevens visueel weer te geven. Zie de handleiding van PostgreSQL voor informatie over het maken van SQL Views.
Dit deel bevat enkele details over de toegang van QGIS tot PostgreSQL-lagen. Meestal geeft QGIS een lijst van databasetabellen die geladen kunnen worden en laad deze wanneer u deze selecteert. Maar wanneer u problemen heeft om een tabel van PostgreSQL te laden in QGIS, kan de onderstaande informatie helpen om de meldingen van QGIS te begrijpen zodat u een aanwijzing hebt wat u moet veranderen aan de tabel van PostgreSQL of aan de definitie van de View zodat QGIS deze alsnog kan laden.
QGIS vereist dat tabellen van PostgreSQL een uniek sleutelveld bevatten voor de te laden laag. In QGIS, moet deze tabel van het type int4 zijn, een integer (geheel getal) met een grootte van 4 bytes. Als een alternatief kan het veld CTID gebruikt worden als sleutelveld. Wanneer in een tabel een van deze velden ontbreekt zal in plaats daarvan het veld OID worden gebruikt. De uitvoering zal verbeteren door een index te definiëren op het sleutelveld. (onthoud dat sleutelvelden automatisch een index krijgen in PostgreSQL).
Wanneer de PostgreSQL-laag een view betreft, bestaan dezelfde vereisten, maar views hebben geen sleutelvelden of velden met regels die ervoor zorgen dat deze uniek zijn. Er moet eerst een sleutelveld (van het type integer) in het dialoogvenster van QGIS gedefinieerd zijn voordat de view geladen kan worden. Wanneer er niet een daarvoor geschikte kolom bestaat in de view zal de laag niet geladen worden in QGIS. Wanneer dat gebeurd kunt u dat oplossen door de view te veranderen zodat deze een kolom bevat van het type integer en die ook kan fungeren als sleutelveld (bij voorkeur geïndexeerd).
Het keuzevak Select at id van QGIS is standaard geactiveerd. Met deze opties worden de ID’s opgehaald zonder attributen wat in de meeste gevallen sneller is. Deze optie uitschakelen heeft zin wanneer er ‘dure’ views worden gebruikt.
Tip
Back-up van database van PostGIS met door QGIS opgeslagen lagen
Als u een back-up van uw database van PostGIS wilt maken met behulp van de opdrachten pg_dump en pg_restore mislukt daarna het herstellen van de standaard laagstijlen, zoals die werden opgeslagen door QGIS. U dient de optie XML in te stellen op DOCUMENT en het herstellen zal wel werken.
Gegevens kunnen op een aantal verschillende manieren geïmporteerd worden in PostgreSQL gebruik makende van de plug-in SPIT of met de programma’s voor de opdrachtregel shp2pgsql of ogr2ogr.
QGIS heeft standaard ook de plug-in DB Manager. Deze kan gebruikt worden om meerdere shapefiles en andere gegevensindelingen te laden en ondersteunt ook schema’s. Zie Plug-in DB Manager voor meer informatie.
PostGIS bevat een stuk gereedschap genaamd shp2pgsql dat gebruikt kan worden om shapefiles te laden in een database van PostGIS. Gebruik de volgende opdracht om bijvoorbeeld een shapefile met de naam lakes.shp te laden in een database van PostgreSQL, genaamd gis_data:
shp2pgsql -s 2964 lakes.shp lakes_new | psql gis_data
Dit maakt een nieuwe tabel aan, genaamd lakes_new, in de database gis_data. De nieuwe tabel zal een ruimtelijke referentie ID (SRID) bevatten van 2964. Zie Werken met projecties voor meer informatie over Ruimtelijke Referentie Systemen en projecties.
Tip
Exporteren van gegevens uit PostGIS
Net zoals de importeerfunctie shp2pgsql is er ook een functie waarmee je PostGIS tabellen kunt exporteren naar shapefile: pgsql2shp. Deze functies vormen een standaard onderdeel van een distributie van PostGIS.
Naast shp2pgsql en DB Manager is er nog een manier om geografische gegevens in PostGIS in te lezen: ogr2ogr. Dit is een onderdeel van GDAL.
Geef de volgende opdracht om een shapefile te importeren in PostGIS:
ogr2ogr -f "PostgreSQL" PG:"dbname=postgis host=myhost.de user=postgres
password=topsecret" alaska.shp
Dit zal het shapefile alaska.shp importeren in de PostGIS-database postgis als gebruiker postgres met het wachtwoord topsecret op host server myhost.de.
Onthoud dat OGR moet gebouwd zijn met PostgreSQL om ondersteuning te kunnen geven aan PostGIS. U kunt dit controleren m.b.v. volgende opdracht (in )
ogrinfo --formats | grep -i post
Wanneer u de opdracht van PostgreSQL COPY wilt gebruiken in plaats van de standaard opdracht INSERT INTO kunt u dat doen door de volgende omgevingsvariabele in te stellen (tenminste beschikbaar op en ):
export PG_USE_COPY=YES
ogr2ogr maakt geen ruimtelijke indexen aan zoals shp2pgsl dat wel doet. U dient ze handmatig te maken met de normale opdracht voor SQL CREATE INDEX (zoals beschreven in het volgende gedeelte Verbeteren van de uitvoering).
Het opvragen van gegevens uit een PostgreSQL database kan vertragend werken, zeker over een netwerk. U kunt de uitvoering van het tekenen van PostgreSQL-lagen echter een stuk sneller maken door er voor te zorgen dat er een PostGIS spatial index bestaat voor elke laag in dedatabase. PostGIS ondersteunt het maken van een zogenaamde GiST (Generalized Search Tree) index om de ruimtelijke zoekopdrachten sneller uit te voeren. (Informatie over de index GiST is overgenomen uit de documentatie van PostGIS, beschikbaar via http://postgis.refractions.net).
De opdracht voor het aanmaken van een GiST index is:
CREATE INDEX [indexname] ON [tablename]
USING GIST ( [geometryfield] GIST_GEOMETRY_OPS );
Voor grote tabellen kan het aanmaken van een index veel tijd kosten. Wanneer de index is aangemaakt dient deze gevolgd te worden door de opdracht VACUUM ANALYZE. Zie de PostGIS documentatie (POSTGIS-PROJECT Verwijzingen naar literatuur en web) voor meer informatie.
Hier volgt een voorbeeld hoe je een GiST index kunt aanmaken:
gsherman@madison:~/current$ psql gis_data
Welcome to psql 8.3.0, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
gis_data=# CREATE INDEX sidx_alaska_lakes ON alaska_lakes
gis_data-# USING GIST (the_geom GIST_GEOMETRY_OPS);
CREATE INDEX
gis_data=# VACUUM ANALYZE alaska_lakes;
VACUUM
gis_data=# \q
gsherman@madison:~/current$
Veel GIS-pakketten zullen verkeerd omgaan met het maken van vectorkaarten met een geografisch referentiesysteem (lengte-/breedtegraden), wanneer deze de lijn van de 180° lengtegraad overschrijdt. (http://postgis.refractions.net/documentation/manual-2.0/ST_Shift_Longitude.html). Als resultaat, als we zo’n kaart openen in QGIS, zullen we zien dat twee plaatsen die dicht bij elkaar liggen, ver uit elkaar worden weergegeven. In Figure_vector_4 ligt het kleine puntje helemaal aan de linkerkant van het kaartvenster (de Chatham Islands), maar dat zou in werkelijkheid binnen het raster, aan de rechterkant van de hoofdeilanden van Nieuw Zeeland, moeten liggen.
Figure Vector 4:
Een oplossing is om de lengtegraden te transformeren met behulp van PostGIS, en de functie ST_Shift_Longitude. Deze functie leest elk punt/vertex in elke component van elk object in de geometrie en als de lengtegraad < 0° is, telt deze er 360° bij op. Het resultaat zal een versie 0° - 360° zijn van de gegevens die afgedrukt worden op een 180° gecentreerde kaart.
Figure Vector 5:
Importeer gegevens in PostGIS (Het importeren van gegevens in PostgreSQL), bijvoorbeeld door gebruik te maken van de plug-in DB Manager.
Geef de volgende opdracht op de opdrachtregel voor SQL van PostGIS (dit is een voorbeeld waar “TABEL” de echte naam is van uw tabel in PostGIS): gis_data=# update TABEL set the_geom=ST_Shift_Longitude(the_geom);
Als alles goed ging, zou u nu een bevestiging moeten ontvangen van het aantal objecten die bijgewerkt zijn. Daarna kan deze tabel geladen worden en ziet u het verschil (Figure_vector_5).
Selecteer, als u gegevens uit een database van SpatiaLite wilt laden, het pictogram SpatiaLite-laag toevoegen op de werkbalk of door de menu-optie SpatiaLite-laag toevoegen... te selecteren onder het hoofdmenu Kaartlagen –. Laag toevoegen of via de sneltoets Ctrl+Shift+L. Een menu zal openen waarin u een nieuwe verbinding met een database van Spatialite kunt maken of een bestaande verbinding, die bekend is bij QGIS, kunt kiezen in een keuzelijst. Selecteer de knop [Nieuw] om een nieuwe verbinding te maken, vervolgens kunt u via een bestandsverkenner de database van SpatiaLite vinden, wat vaak een bestand is dat meestal de bestandsextensie .sqlite heeft.
Wanneer u een vectorlaag wilt opslaan in de indeling voor SpatiaLite kunt u dit doen door een vectorlaag in de legenda te selecteren en dan met de rechter muisknop het contextmenu te openen en daarin Opslaan als... te selecteren. Geef een naam voor de aan te maken database, geef ‘Spatialite’ als indeling en het CRS (Coördinaten Referentie Systeem). U kunt ook ‘SQLite’ als indeling selecteren en de opdracht SPATIALITE=YES in het veld OGR data source creation option opgeven. OGR weet dan dat het een database voor SpatiaLite moet maken. Zie ook http://www.gdal.org/ogr/drv_sqlite.html.
QGIS ondersteunt ook het bewerken van Views die gewijzigd kunnen worden in SpatiaLite.
Wanneer u een nieuwe SpatiaLite laag wilt maken, ga naar Nieuwe Spatialite-laag maken.
Tip
SpatiaLite data management Plugins
Voor het beheren van gegevens van SpatiaLite kunt u een aantal plug-ins voor Python gebruiken: QSpatiaLite, SpatiaLite Manager of DB Manager (bronplug-in, aanbevolen). Deze kunnen gedownload en geïnstalleerd worden met Plug-ins beheren en installeren.
QGIS biedt ook ondersteuning voor MS SQL 2008. De eerste keer wanneer u een database van MSSQL Spatial wilt openen, begin met te klikken op het pictogram MSSQL Spatial-laag toevoegen in de werkbalk, of selecteer de menuoptie MSSQL Spatial-laag toevoegen... in het menu Kaartlagen ‣ Laag toevoegen of gebruik de snelkoppeling Ctrl+Shift+M.
De ruimtelijke objecten in Oracle Spatial helpen gebruikers bij het beheren van geografische en locatie-gegevens in een eigen type binnen een database van Oracle. QGIS heeft nu ondersteuning voor dergelijke lagen.
De eerste keer wanneer u een database van Oracle Spatial wilt openen, moet er eerst een connectie met de database gemaakt worden die de ruimtelijke gegevens bevat. Begin met het selecteren van het pictogram Oracle Spatial-laag toevoegen in de werkbalk, of selecteer de menuoptie Oracle Spatial-laag toevoegen... in het menu Kaartlagen ‣ Laag toevoegen of gebruik de snelkoppeling Ctrl+Shift+O. Druk in het menu dat verschijnt op de knop [Nieuw] om toegang te krijgen tot het beheren van de verbindingen, vervolgens opent het menu Nieuwe Oracle Spatial verbinding aanmaken. De verplichte velden voor het opzetten van een verbinding zijn:
Naam: Een naam voor deze verbinding. Mag gelijk zijn aan Database.
Database SID of SERVICE_NAME van de Oracle instantie.
Host: Naam van de host van de database. De naam van de host moet dezelfde zijn als waarmee u deze kunt vinden via een telnet-verbinding of hoe u deze kunt pingen. Wanneer de database op dezelfde computer staat als QGIS, gebruik hier dan ‘localhost’.
Poort: Poortnummer waar de server van de database van Oracle naar luistert. De standaard poort is 1521.
Gebruikersnaam: Gebruikersnaam om toegang te krijgen tot de database.
Wachtwoord: Wachtwoord dat hoort bij Gebruikersnaam om toegang te krijgen tot de database.
Optioneel kunnen de volgende keuzevakjes worden geactiveerd:
Gebruikersnaam opslaan Geef aan of de gebruikersnaam van de verbinding naar de database moet worden opgeslagen.
Wachtwoord opslaan Geeft aan of het wachtwoord van de verbinding naar de database moet worden opgeslagen.
Kijk alleen in de metadata tabel. Dit beperkt de tabellen tot die aanwezig in de view all_sdo_geom_metadata. Dit kan het tonen van tabellen voor selectie aanzienlijk versnellen.
Alleen zoeken naar tabellen van de gebruiker. Beperk de zoekopdracht tot alleen die ruimtelijke tabellen waar de gebruiker eigenaar van is.
Ook tabellen zonder geometrie tonen Geeft aan dat ook tabellen zonder geometrie standaard in de lijst getoond worden.
Gebruik geschatte tabelstatistieken voor de laag metadata Wanneer een laag wordt aangemaakt wordt er ook verschillende metadata aangemaakt voor de tabel in Oracle. Deze bevat informatie als het bijhouden van het aantal regels, het type geometrie en het bereik van alle geometrieën in de tabel. Het bijhouden van deze metadata is tijdrovend als de tabellen veel records bevatten. Door deze optie te activeren, worden de volgende snelle bewerkingen voor de metadata uitgevoerd: Het aantal regels wordt bepaald vanuit all_tables.num_rows. De bereiken van elke tabel worden altijd bepaald met de functie SDO_TUNE.EXTENTS_OF, zelfs wanneer er een filter wordt gebruikt. Het bepalen van het type geometrie wordt bepaald uit de eerste 100 regels van de tabel die geometrie bevatten.
Alleen bestaande geometrie typen Toon alleen bestaande typen geometrie en biedt niet aan om andere toe te voegen.
Wanneer alle veldparameters en opties zijn ingesteld, kunt u de verbinding testen met de knop [Test verbinding].
Tip
QGIS Gebruikersinstellingen en beveiliging
Afhankelijk van uw besturingssysteem kan de opslag van wachtwoorden in de instellingen voor QGIS een beveiligingsrisico vormen. Wachtwoorden worden opgeslagen als leesbare tekst in de systeem configuratie en in de projectbestanden! De opslag van gebruikersinstellingen voor QGIS hangt af van uw besturingssysteem:
Na het aanmaken van een verbinding met één of meerdere databases van Oracle, kunt u een laag laden vanuit de database van Oracle. Uiteraard moet die wel eerst kaartgegevens bevatten.
Voer de volgende stappen uit om een laag te laden vanuit Oracle Spatial:
Selecteer, als het venster Oracle Spatial tabel(len) toevoegen nog niet open is, in de werkbalk de knop Oracle Spatial-laag toevoegen.
Kies een aangemaakte verbinding vanuit de keuzelijst en druk op [Verbinden].
Selecteer of deselecteer het keuzevak Ook tabellen zonder geometrie tonen
Optioneel kunt u het keuzevak Zoek opties aanvinken om een selectie te maken van objecten die geladen dienen te worden of gebruik de knop [Filter instellen] om het dialoogvenster Querybouwer te openen .
Zoek naar de laag/lagen die u wilt laden uit de lijst van beschikbare tabellen met gegevens.
Selecteer deze door er op te klikken. U kunt meerdere lagen selecteren door de Shift-toets in te drukken tijdens het klikken. Zie Querybouwer voor meer informatie over het gebruiken van de Oracle Querybouwer om de laag verder te definiëren.
Klik op de knop [Toevoegen] om de laag toe te voegen aan de legenda en het kaartbeeld.
Tip
Oracle Spatial-lagen
Normaal gesproken wordt een ruimtelijke laag in ORACLE gedefinieerd door een item in de tabel USER_SDO_METADATA.