In 3-voud (QGis, FME en Postgis): hoeveel punten in elke polygoon?

Voor een boek waar Travelingo mee bezig is moesten we het aantal POIS (points of interest) per Nederlandse provincie weten. Meerdere tools zijn dan mogelijk. Er bestaan er ongetwijfeld veel meer, maar de makkelijkste zijn voor mij QGIS, FME en Postgis.

“In 3-voud (QGis, FME en Postgis): hoeveel punten in elke polygoon?” verder lezen

Een onderzoek naar de meest gebruikte tags in Openstreetmap en de Top10nl

Voor het uitfilteren van toeristische bezienswaardigheden bieden de Top10nl en Openstreetmap waardevolle informatie. Belangrijk is dan na te gaan welke trefwoorden of tags in allebei de cartografische databases worden gebruikt en hoe vaak. SQL queries zijn vrij eenvoudig samen te stellen, maar hoe verzamel je álle data op overzichtelijke wijze in één Excel-bestand? Python, openpyxl en psycopg2 bieden uitkomst.

“Een onderzoek naar de meest gebruikte tags in Openstreetmap en de Top10nl” verder lezen

Linux, Ubuntu en osm2pgsql

De Windows-versie van osm2pgsql (voor conversie van OSM-bestand naar Postgis database) werkt al enige tijd niet meer goed. Downloaden is een probleem en een werkende versie leverde hele rare lijnen op of veel te weinig lijnen. Dus besloot ik het over de Linux-boeg te gooien. Dat ging wel, maar niet zonder slag of stoot.

“Linux, Ubuntu en osm2pgsql” verder lezen

Labels workflow in QGis and Inkscape

However matured the labeling engine in Qgis is, there is still a moment when you think beyond QGis in order to position the labels and icons as you want. I managed to setup a workflow with QGis and Inkscape with satisfactory results. Both are opensource. But if anybody has better options I would like to hear from you!

“Labels workflow in QGis and Inkscape” verder lezen

Street struggles with Postgis en Openstreetmap data

How can I label the most important streets of a middlesized town based on Openstreetmap data? The obvious way is to use the highway tag/field, which contains values like ‘primary’, ‘secondary’, ‘tertiary’ etc.. I found out that other values like ‘residential’, ‘services’, ‘unclassified’, etc.. are not 100 % useful for distinguishing the most important streets below the ‘tertiary’ level. An approach for those ‘smaller’ streets would be to use the length of a street: the longer, the more important it should be. How do you get the length of any street? Postgis comes to the rescue, as my OSM-data is stored in a postgresql/postgis database. But it’s not without its complications.

“Street struggles with Postgis en Openstreetmap data” verder lezen

Clustering van bushaltes in QGis met postgis

Bushaltes bevinden zich vaak in paren, aan beide zijden van de weg. Op een kaart is het vaak beter om daar één symbool met één label van te maken. Dat kan met postgis en de DBManager in Qgis.

Soms ook gaat het om meer dan 2 bushaltes met dezelfde namen. Kijk hieronder naar het plein voor NS-treinstation Zwolle. Het wemelt van de bushaltes.

bushalte noncentroids

Beter zou zijn om haltes met dezelfde naam te clusteren. Dat kan door een laag aan te maken in de DBManager van Qgis. Niet in de Postgresql  database zelf! Het is beter een laag met de sql-code te koppelen, omdat de st_makeenveloppe functie 4 waarden heeft, corresponderend met de kaartextent, die per project verschillen. Het gaat om de volgende SQL-code:

select name, st_centroid(st_union(way)) as waygeom
from planet_osm_point
where way && ST_MakeEnvelope(202248, 501898, 205180, 504072, 28992) and highway = 'bus_stop'
group by name;

De st_union wordt gedaan met behulp van de group by functie, waarbij records worden samengevoegd tot multipoints, gebaseerd op dezelfde naam.

P.S. De ST_MakeEnveloppe functie beperkt het samenvoegen op naam tot de extent van de kaart in Qgis. Immers, een bushalte met ‘Markt’ als naam kan overal in Nederland voorkomen en tot vreemde centroids leiden.

Daarna doet de st_centroid functie de multipoints weer tot één punt smelten. Het resultaat, zie hieronder. Een stuk mooier.

bushalte centroids

Ook een gewoon bushalten’paar’ oogt beter als één symbool. Zie het verschil hieronder.

bushalte noncentroids bushalte centroids