Дуглас-Пекер, безусловно, правильный подход. Есть несколько простых способов получить доступ к его реализации в PostGIS и QGIS, которые, как я думал, я бы добавил сюда для тех, кто сталкивается с этим постом с похожим вопросом. Цель состоит в том, чтобы начать что-то вроде этого:
и в итоге получится что-то вроде этого:
В PostGIS Дуглас-Пейкер реализован как simplify
, синтаксис, детальный здесь, на bostongis.org , представляет собой некоторый вариант:
SELECT transform(simplify(transform(the_geom, 2249), 500),4326) from the_geo_table
Это сработало очень хорошо даже для полного национального набора данных, с некоторыми ошибками, которые появляются из-за неверных базовых данных. Также оказывается, что в QGIS пункт меню Tools > Geometry Tools > Simplify Geometries
экспортирует упрощенный шейп-файл любой геометрии и добавит его в качестве слоя в текущий проект.
Это довольно фундаментальный набор инструментов, и я задал вопрос на слишком низком уровне, хотя было неплохо изучить основную математику, здесь есть хорошее объяснение : http://www.mappinghacks.com/code/PolyLineReduction/, вместе с образцом код, который оказывается не слишком необходимым!