Как создать маску многоугольника «область интересов»?

12

Я создал инструмент GP, используя ArcGIS, который создает маску «области интереса» из выбранных объектов. Эффективно он создает новый слой многоугольника пончик, где отверстие было ранее выбранных объектов. Могу ли я повторить эту задачу в QGIS?

Пример: для конкретной карты я хочу выделить округ внутри штата и замаскировать оставшуюся часть штата и объекты за пределами округа серым полупрозрачным слоем многоугольника выше. Концептуально я бы сделал это похоже на это.

  1. Пользователь загружает штат, округ и слой реки
  2. Пользователь выбирает интересующий округ
  3. Запустите утилиту (если она существует), которая экспортирует все невыбранные объекты в шейп-файл пончика без первоначально выбранного многоугольника. Если бы эта маска слоя была слоем «в памяти», доступным только для QGIS, это тоже было бы неплохо, может быть, даже лучше.

Этот тип инструмента или возможности уже существует в QGIS, или мне придется написать это как пользовательскую функцию?

Вот как я это сделал в ArcGIS с ModelBuilder, и результат, который я хотел бы найти, где желтый слой и слой реки существуют по всему штату (полностью по всему изображению), а серый слой прозрачен с «дыркой от бублика», позволяя ярко-желтой части просвечивать и привлекать внимание зрителя к интересующей области:

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

RyanKDalton
источник

Ответы:

12

Чтобы создать маску, я бы предложил использовать Polygon из экстентов слоя (вектор - инструменты исследования) и Разница (вектор - инструменты геообработки) с активированной опцией «использовать только выбранные объекты».

Если вы действительно хотите «экспортировать все невыбранные объекты в шейп-файл пончика», вы можете попробовать Dissolve , но он довольно медленный и может привести к неоптимальным результатам, таким как крошечные дырки и т. Д.

Создание большого полигона с помощью многоугольника из инструмента «Растяжение слоя» и последующее вырезание выбранного округа должно быть намного быстрее.

Подземье
источник
12

Спасибо @underdark за ваше руководство к этому решению. Функция fTools «Разница» была именно тем инструментом, который выполнил задачу. Однако, в отличие от вашего предложения, мне не нужно было сначала создавать «Многоугольник из слоев».

Вместо этого решение было:

  1. Загрузить слой данных (графства)
  2. Выберите интересующий объект (округ А)
  3. Используйте инструмент Вектор-> Геообработка-> Разница
  4. Выберите слой графства в качестве обоих входов, отметьте «Использовать выбранные объекты» для параметра «Слой входного вектора», для параметра «Разница» выберите значение «ВКЛ».

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

Это даст слой со всеми объектами из входного сигнала, КРОМЕ выбранного объекта (ов). Благодарность!

RyanKDalton
источник
2
Возвышение было бы "спасибо" достаточно;)
Подземье
Это прекрасно работает. Единственным недостатком является то, что графство граничит с морем или другим районом без полигонов, и поэтому эти районы не маскируются.
JimS-W
3

Симметричный разница в QGIS 1.6 находится в Векторе> геообработки Инструменты> Симметричная разница (стандартные основные средства) должен генерировать маску из двух входных полигонов ...

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

Mapperz
источник