Streets in Openstreetmap have more detail than I need. For instance I do not need seperate street tracks for each driving direction, instead I just want to show the general path of the street. Example:
OSM linestrings for a street
Simpified linestring(s) (here it is just one, but in case of sidearms would be > 1)
input: collection of linestrings
output: collection of linestrings
simplified lines = f(osm lines)
f = ?
the output is a collection as well, since sidearms should remain available.
How do I programatically simplify such linestring collections?
Would like to use JTS, NTS, GEOS but not PostGIS if possible.
Answer
Hard to imagine how you can reach what you want automatically. Perhaps by deleting one of the oneway tagged streets if there exist two of them with the same name and close enough?
Often used workflow starts from unioned linestrings followed by buffering and skeletonizing. This PhD thesis is good reading http://paduaresearch.cab.unipd.it/4077/1/Tesi-Savino-2011.pdf I also tried the workflow with OpenJUMP 1.7.0 and the Skeletonizer plugin http://kent.dl.sourceforge.net/project/jump-pilot/OpenJUMP_plugins/More%20Plugins/JUMP%20Skeletonizer%20Plugin/skeletonizer-1.0.zip The plugin works but the result is one long street, not a reduced number of short ones. I found it necessary to read the manual before using the plugin. It is inside the zip in the doc folder.
No comments:
Post a Comment