5.2. Занятие: Топология функций
Топология является полезным аспектом слоев векторных данных, поскольку минимизирует ошибки, такие как перекрытие или пробелы.
Например, если две функции имеют общую границу, и вы редактируете границу с помощью топологии, то вам не нужно будет редактировать сначала одну функцию, а затем другую и тщательно выстраивать границы так, чтобы они совпадали. Вместо этого можно редактировать их общую границу, и обе функции будут изменяться одновременно.
Цель данного занятия: понять топологию с помощью примеров.
5.2.1. Идем дальше: Привязка
Привязка упрощает топологическое редактирование. Это позволит курсору мыши привязываться к другим объектам во время оцифровки. Чтобы задать опции привязки, выполните следующие действия.
Перейдите к меню
.Настройте диалоговое окно Snapping options, чтобы активировать слой
landuse
с помощью вершины Type vertex и допуск в12
пикселей:Убедитесь что поле в колонке Avoid overlap проверено.
Выйдите из окна диалога.
Проверьте (в Advanced Digitizing инструмент активирован.
) чтоЗумирование этой местности (включайте слои и надписи при необходимости):
Оцифруйте новую (вымышленную) местность:
В ответ на запрос, присвойте ему OGC_FID 999, но можете оставить остальные значения без изменений.
Если при оцифровке соблюдать осторожность и разрешить привязку курсора к вершинам смежных местностей, то вы заметите, что между новой местностью и существующими смежными местностями не будет никаких промежутков.
Обратите внимание на инструменты undo и redo в Advanced Digitizing на панели инструментов.
5.2.2. Идем дальше: Правильные топологические Функции
Иногда может потребоваться обновление функций топологии. На нашем участке работы, эта местность была превращена в лес, поэтому слой землепользования landuse
нуждается в обновлении. Поэтому мы будем расширять и присоединять некоторые лесные функции на этой местности:
Вместо создания новых полигонов для присоединения к лесным участкам мы будем использовать Инструмент Vertex для редактирования и присоединения существующих полигонов.
Переход в режим редактирования (если он еще не активен).
Выберите участок леса, выберите вершину и переместите ее на смежную вершину, чтобы две функции леса совместились:
Кликните на другие вершины и привяжите их к месту.
Топологически правильная граница выглядит следующим образом:
Продолжайте и присоедините еще несколько местностей с помощью Инструмента Vertex.
Можете использовать инструмент Add Polygon Feature для того, чтобы заполнить пробел между двумя полигонами «лес». Если включен параметр Избежать перекрытия, не нужно добавлять каждую вершину - они будут добавляться автоматически, если ваш новый полигон перекрывает существующие.
Если вы используете наш пример данных, то ваш лесной участок должен выглядеть примерно так:
Не волнуйтесь, если вы присоединились к большему, меньшему или разным участкам леса.
5.2.3. Идем дальше: Инструмент: Упрощение функции
Продолжаем на том же слое, протестируем инструмент Упрощение функции Simplify Feature:
Кликните на него и активируйте.
Кликните на один из участков, который вы уже присоединили или с помощью Инструмента Vertex или инструмента Add Feature, вы увидите это диалоговое окно:
Измените Tolerance и вы увидите что произойдет:
Это позволяет уменьшить число вершин.
Кликните OK
The advantage of this tool is that it provides you with a simple and intuitive interface for generalization. But notice that the tool ruins topology. The simplified polygon no longer shares boundaries with its adjacent polygons, as it should. So this tool is better suited for stand-alone features.
Прежде чем продолжить, верните полигон в исходное состояние, отменив последнее изменение.
5.2.4. Попробуйте сами Инструмент: Добавить кольцо
Инструмент Add Ring позволяет добавить внутреннее кольцо к функции полигона (вырезать отверстие в полигоне), если отверстие полностью находится внутри полигона (если есть касание границы, это OK). Например, если вы оцифровали внешние границы Южной Африки и вам нужно добавить отверстие для Лесото, вы бы использовали это инструмент.
При эксперименте с инструментом вы можете заметить, что опции привязки могут помешать созданию кольца внутри полигона. Поэтому рекомендуется отключить привязку перед вырезанием отверстия.
Отключить привязку для слоя
landuse
с помощью кнопки Enable Snapping (или используйте ярлыки s).Используйте инструмент Add Ring для создания отверстия с середине геометрии полигона.
Нарисуйте полигон над целевой функцией, как если бы вы использовали инструмент Добавить полигон Add polygon.
Когда вы нажмете правый клик, отверстие станет видимым.
Remove the hole you just created using the Delete Ring tool. Click inside the hole to delete it.
Answer
The exact shape doesn’t matter, but you should be getting a hole in the middle of your feature, like this one:
Undo your edit before continuing with the exercise for the next tool.
5.2.5. Попробуйте сами Инструмент: Добавить часть
Инструмент Add Part позволяет добавить новую частьдеталь к функции, которая не связана напрямую с основной функцией. Например, если вы оцифровали границы материковой части Южной Африки, но еще не добавили острова Принца Эдуарда, вы бы использовали этот инструмент для их создания.
Выберите полигон, к которому требуется добавить деталь, с помощью инструмента Выберите функцию по местности или одним кликом Select Features by area or single click.
Используйте инструмент Add Part для добавления внешней области.
Удалите только что созданную часть с помощью инструмента Delete Part.
Примечание
Кликните внутри детали, чтобы удалить ее.
Answer
First select the Bontebok National Park:
Now add your new part:
Undo your edit before continuing with the exercise for the next tool.
5.2.6. Идем дальше: Инструмент: Изменить форму Функции
Инструмент Reshape Features используется для расширения функции полигона или вырезания его части (вдоль границы).
Расширение:
Выберите полигон с помощью инструмента Select Features by area or single click.
Кликните левой кнопкой мыши внутри полигона, чтобы начать рисование.
Нарисуйте форму вне полигона. Последняя вершина должна быть снова внутри полигона.
Кликните правой кнопкой мыши для завершения фигуры:
Это даст результат, аналогичный нижеследующему:
Вырежьте часть:
5.2.7. Попробуйте сами Инструмент: Разделить Функции
Инструмент Split Features аналогичен инструменту Reshape Features кроме одного, того что он не удаляет ни одной из двух частей. И наоборот, сохраняет обе.
Мы будем использовать инструмент, чтобы отделить угол от полигона.
Сначала выберите слой
landuse
и повторно включите для него привязку.Выберите инструмент Split Features и кликните на вершину для того, чтобы начать рисовать линию.
Нарисуйте ограничивающую линию.
Кликните вершину на «противоположной» стороне полигона, который вы хотите разделить, и кликните правой кнопкой мыши для завершения линии:
На данный момент может показаться, что ничего не произошло. Но помните, что слой
landuse
визуализируется без линий границы, поэтому новая линия разделения не будет показана.Используйте инструмент Select Features by area or single click чтобы выделить только что разделенную частьдеталь; теперь новый элемент будет выделен:
5.2.8. Попробуйте сами: Инструмент: Слить Функции
Теперь мы снова присоединим элемент, который вы только что разделили, к оставшейся части полигона:
Поэкспериментируйте с инструментами Merge Selected Features и Merge Attributes of Selected Features.
Отметьте разницу.
Answer
Use the Merge Selected Features tool, making sure to first select both of the polygons you wish to merge.
Use the feature with the OGC_FID of
1
as the source of your attributes (click on its entry in the dialog, then click the Take attributes from selected feature button):
If you’re using a different dataset, it is highly likely that your original
polygon’s OGC_FID will not be 1
. Just choose the feature
which has an OGC_FID.
Using the Merge Attributes of Selected Features tool will keep the geometries distinct, but give them the same attributes.
5.2.9. В заключении
Редактирование топологии - это мощный инструмент, который позволяет быстро и легко создавать и изменять объекты, обеспечивая при этом их топологическую корректность.
5.2.10. Что дальше?
Теперь вы знаете, как легко оцифровать форму объектов, но добавить атрибут - это пока еще заморочка! Далее мы покажем, как использовать формы, делая редактирование атрибутов более простым и эффективным.