Объединение полилиний
Добавлено: 14 апр 2015, 13:28
Есть SHP слой с набором полилиний. Эти полилинии описывают замкнутые границы (набор островов со сложной границей), но контур каждого острова может быть отрисован множеством полилиний, при этом концы полилиний аккуратно совпадают (с некоторой точностью - думаю до первого знака после запятой в метрах точно).
Нужно получить контуры в виде полигонов. Т.е. полигоны у которых начало и концы совпадают должны быть объединены в новые полилинии. И затем на основании этих полилиний сделаны полигоны.
Полигоны могут получены с небольшой погрешностью (1 метр) от исходных полилиний) - т.к. будут смотреться на крупном масштабе, где этот 1 м будет незаметен.
Количество полилиний в слое - около 20 тысяч.
Я придумал такой процесс
1. Для всех полилиний строй буфер с минимальным отступом (1 метр).
2. Объединяю эти полигоны - получаю единый мультиполигон где каждый полигон внутри него, это кольцо, описывающее остров.
3. Удаляю "дырки" из полигонов.
Есть более простой подход?
На шаге 2 операция "Объединение по признаку" занимает оч. много времени (10% обработки заняло 2 часа. пока остановил).
Нужно получить контуры в виде полигонов. Т.е. полигоны у которых начало и концы совпадают должны быть объединены в новые полилинии. И затем на основании этих полилиний сделаны полигоны.
Полигоны могут получены с небольшой погрешностью (1 метр) от исходных полилиний) - т.к. будут смотреться на крупном масштабе, где этот 1 м будет незаметен.
Количество полилиний в слое - около 20 тысяч.
Я придумал такой процесс
1. Для всех полилиний строй буфер с минимальным отступом (1 метр).
2. Объединяю эти полигоны - получаю единый мультиполигон где каждый полигон внутри него, это кольцо, описывающее остров.
3. Удаляю "дырки" из полигонов.
Есть более простой подход?
На шаге 2 операция "Объединение по признаку" занимает оч. много времени (10% обработки заняло 2 часа. пока остановил).