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

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

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

Van Openstreetmap Nederland naar Postgresql/Postgis

Al eerder schreef ik een korte blogpost om van een OSM download te komen tot een Postgresql/Postgis database m.b.v. osm2pgsql. De laatste dagen ben ik verder gekomen met

  1. een Cmd file die een aantal conversies uitvoert en
  2. een PL/pgSQL script dat de nabewerking regelt.

“Van Openstreetmap Nederland naar Postgresql/Postgis” verder lezen

Postgresql – Nederlandse grensgebieden in kaart gebracht

Wie kaarten maakt voor wandelaars en fietsers in onze grensstreken, loopt vroeg of laat tegen de beperkingen van de bronnen aan die in Nederland via de PDOK en het nationaalgeoregister te verkrijgen zijn. De top25raster, top50nl raster, en top250raster, maar ook de vectorverzameling Top10nl zijn erg beperkt tot het Nederlandse grondgebied. En wij willen de grens over! Het buitenland in!
De openstreetmap (OSM) levert een welkome aanvulling op. Uitdaging is om de Top10nl en de OSM te combineren tot 1 éénduidig kaartbeeld.

“Postgresql – Nederlandse grensgebieden in kaart gebracht” verder lezen