Douglas-Peucker is definitely the right approach. There are some simple ways to access implementations of it in PostGIS and QGIS that I thought I would add here for those who come across this post with a similar question. The goal is to start with something like this:
and end up with something like this:
In PostGIS Douglas-Peucker is implemented as simplify
, the syntax, detailed here at bostongis.org, is some variant of:
SELECT transform(simplify(transform(the_geom, 2249), 500),4326) from the_geo_table
This worked very well even on the full national dataset, with some few errors that seem due to bad underlying data. It also turns out that in QGIS the menu item Tools > Geometry Tools > Simplify Geometries
will export a simplified shapefile of any geometry and add it as a layer to your current project.
This is a pretty fundamental tool-set and I asked the question at too low a level, though it was nice to learn the underlying math, there is a good explanation of that here: http://www.mappinghacks.com/code/PolyLineReduction/, along with sample code that turns out not to be too necessary!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…