ГИС: преобразование нескольких полигонов в несколько объектов - PullRequest
0 голосов
/ 03 мая 2010

Я участвую в проекте ГИС. У меня есть файл базовой карты (файл формы), который содержит слой дороги для большой части города. Проблема состоит в том, что файл формы содержит только два объекта, каждый из которых содержит около 500000 точек каждый. Объектами являются мультиполигоны, содержащие большое количество полигонов внутри. Я хочу преобразовать его в многочисленные функции, каждая из которых содержит не более одного многоугольника. Является ли это возможным? Если да, то как?

Ответы [ 2 ]

3 голосов
/ 05 мая 2010

Похоже, то, что у вас здесь есть, это функция, состоящая из нескольких частей. Если вы используете ArcGIS, вам нужно добавить панель инструментов расширенного редактора в вашу карту дуги. Начните сеанс редактирования и используйте инструмент разнесения, состоящий из нескольких частей, и тогда у вас будет одна геометрия для каждой записи.

1 голос
/ 04 мая 2010

Если у вас есть информация о подключении (например, у вас есть многоугольники, а не только точки), не так уж и сложно сделать достойную работу по сокращению многоугольников.

То, что я делал в прошлом, состояло из двух шагов.

  1. Любая вершина, окруженная полигонами, все из которых являются копланарными, может быть удалена. Я сделал это путем «скольжения» вершины к соседней вершине, чтобы этот сосед получил все соседи тестовой вершины и все треугольники, которые становятся вырожденными (например, любые треугольники, общие для двух вершин).

  2. Любая вершина, имеющая два ребра, выходящих друг против друга, где многоугольники с обеих сторон либо полностью отсутствуют, либо копланарны, также может быть аналогично свернута в соседнюю вершину, но, очевидно, только одну, которая находится вдоль одной из параллельные ребра.


примечание
Два многоугольника копланарны, если они имеют хотя бы одну общую точку и имеют одинаковую нормаль. Поскольку полигоны-кандидаты всегда присоединяются к вершине-кандидату, вам просто нужно сравнить нормали полигонов. Нормаль можно вычислить, взяв перекрестное произведение двух ребер многоугольника.

...