5

I've been sent a shapefile containing 12 layers of some city's road system. Each layer depicts a portion of the road system, and all of them partially overlap on the map.

I'd like to work on the sum of these 12 layers in order to have the broadest extent of the road system. The problem is that the person who digitized the analog maps to create the shapefile didn't use the snap feature, and the line segments and their vertices don't exactly overlap where they should.

enter image description here

How would one sensibly deal with this kind of data? Is there a way to automatically correct these messed up topologies?

4
  • 2
    Maybe v.patch from the Grass-Toolbox can help you.
    – Erik
    Aug 8, 2018 at 14:24
  • Thanks! I'm pretty new with open source GIS though, is there some easy way to run GRASS tools on QGIS layers?
    – Lucien S.
    Aug 8, 2018 at 14:49
  • 3
    you´ll find all available tools in QGIS's Processing Toolbox (CTRL + ALT + T or a little gear symbol in newer versions), with an own tab for GRASS tools. v.patch might indeed help you combine all your files...but, honestly, I´d first try to get proper data elsewhere; if it is just a plain, up-to-date road network you´re after, chances are high OSM got that for you already.
    – geozelot
    Aug 8, 2018 at 15:27
  • Sorry for the long delay, but I can't test this suggestion as I'm unable to install osgeo and all the grass tools as part of the qgis installation process (which I didn't know since the interface and some other tools work fine)
    – Lucien S.
    Aug 15, 2018 at 15:49

1 Answer 1

1

Perhaps the Snap option of v.clean could solve your problem.

I tested this with two different reprojections of a single line to create more or less parallel running lines. v.clean turns them into a single line, but also eliminates a number of vertices. If you can fine-tune the threshold setting to minimize this loss of detail to something that is acceptable to you, it could work.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.