I downloaded some road network data derived from OSM by GeoFabrik, see the initial state: Near Székesfehérvár (Hungary), parallel lines are probably trunk or motorway roads.
I would like to simplify it like this (drawn in Paint):
I would like to use open source stuff for that (QGIS, GRASS), so I tried v.clean and v.simplify, v.generalize in some combination. Unfortunately, I cannot reach the desired result.
With v.clean 'snap' method, tolerance=50 I reached this:
But I don't need duplicated geometries, or identical zig-zag lines. Probably the v.generalize.network (Closeness, Betweeness threshold) would solve the problem, if it worked.
You can download the clipped geodata here: https://github.com/ewirth/gistemp
Answer
Buffering the road may be a solution to this problem.
create a dissolved buffer of the road using around 20 unit map distance.
import the layer into a postgis database and create the middle line using ST_ApproximateMedialAxis() function:
SELECT ST_ApproximateMedialAxis(geom) AS geom INTO road_centre_line FROM road_buffer;
- in order to access this function you have to enable the
postgis_sfcgal
extension - with this you will get an output like this
No comments:
Post a Comment