Упрощение соседних полигонов

Я работаю над преобразованием некоторых карт/регионов старой системы координат в более простую (менее подробную) модель для представления в Интернете (используя jVectorMap). Я успешно использовал алгоритм Дугласа Пеукера (из кода, найденного здесь: http://www.codeproject.com/Articles/18936/A-C-Implementation-of-Douglas-Peucker-Line-Approxi).

Это работает довольно хорошо, но эта реализация не учитывает, что эти области выровнены друг с другом (общие границы), что приводит к довольно уродливому результату при использовании более высокого допуска, как показано ниже.

введите здесь описание изображения

Можно ли реализовать решение, при котором регионы останутся выровненными?


person David W.    schedule 19.11.2012    source источник


Ответы (2)


Если у вас есть опыт работы с Python, вы можете попробовать скрипт упрощения, который Я написал, что буду частью ГИС-конвертера jVectorMap. К сожалению, это еще не закончено: вам нужно установить зависимости вручную, определить параметры внутри скрипта (пути, драйвер) и т. д.

Просто задайте в скрипте следующие параметры:

tolerance = 1000
infile = 'Kn99_sve.MIF'
outfile = 'map.mif'

И измените форму имени водителя с ESRI Shapefile на MapInfo File.

Для запуска скрипта вам нужен Python 2.7 и установленные модули Python: gdal, shapely, anyjson.

person bjornd    schedule 20.11.2012
comment
Спасибо, однако мои исходные файлы не SHP (это MID/MIF). Хотя я мог бы заглянуть к нему. Я также нашел этот упроститель JavaScript: bost.ocks.org/mike/simplify. Будет сообщение в этой теме, если прогресс. - person David W.; 21.11.2012
comment
Он также должен работать с MID, поскольку для загрузки данных используется библиотека GDAL/OGR, которая поддерживает широкий спектр форматов ГИС. Кстати, я не думаю, что этот скрипт поддерживает безопасное упрощение границ. - person bjornd; 21.11.2012
comment
Хорошо. Рассмотрю это. Я действительно думаю, что размещенная ссылка должна поддерживать безопасное упрощение границ, поскольку в ней что-то говорится о смежных треугольниках (опять же, еще не углублялся в это). - person David W.; 21.11.2012
comment
@Div Отсутствие смежных треугольников - это просто метод упрощения одного многоугольника. Кстати, каков размер вашего исходного файла? Я хотел бы проверить это со своим скриптом. - person bjornd; 21.11.2012
comment
У меня есть три разных исходных файла для разных типов регионов. Я буду рад отправить вам один из них, это около 2 МБ. эхо.бьорнд@g? - person David W.; 21.11.2012
comment
Да, пришлите их мне, и я сделаю тесты сегодня. - person bjornd; 21.11.2012
comment
Спасибо за (отредактированный) ответ. Я проверю это, но я протестировал код из этого сообщения в блоге boraberan.wordpress.com/2012/10/23/ Это на C#, с которым я лучше знаком. - person David W.; 22.11.2012

В arcgis у вас есть полигон Simplify: http://resources.arcgis.com/en/help/main/10.1/index.html#//007000000011000000

person nicogis    schedule 28.03.2013