Как обрезать базовую карту OSM с помощью многоугольника?

10

Я создал карту в QGIS 2.0. Карта использует плагин OpenLayers для добавления слоя OSM в качестве базовой карты. Я хотел бы ограничить отображение базовой карты только внутри данного многоугольника, определенного в слое шейп-файла. Как мне этого добиться?

Llaves
источник
1
Вам придется использовать слой OSM WMS (преобразованный в локальный слой георастра), затем вы можете использовать Растр> Извлечение> Клиппер и использовать опцию Маска с вашим полигоном. см. docs.qgis.org/2.0/html/en/docs/user_manual/plugins/…
Mapperz
Я думал, что попробую ваш метод, но не могу заставить его работать. Я создаю новый проект с CRS EPSG по умолчанию: 4326. Я добавляю свою границу шейп-файла полигона (Вашингтон, округ Колумбия), которая находится в State-Plane, но я включил перепроектирование на лету. Затем я ищу сервер OSM WMS и выбираю OSM с одним ярлыком и описанием WMS. Я подключаюсь, выбираю слой 7 (шоссе) и нажимаю «Добавить». Имя слоя отображается на панели слоев, но на карте ничего не отображается. Если я увеличу масштаб до уровня слоя, я окажусь далеко в никуда (долгота -121 °, DC около -77, где мой полигон), но я вижу дороги.
Llaves

Ответы:

10

Так у меня это работает:

  1. Создайте шейп-файл по всему миру с растяжением от + 180 ° E до -179,99 ° E и от + 85,5 ° N до -85,5 ° N с помощью текстового файла, содержащего

    Nr; WKT

    1; ПОЛИГОН ((180 85,5, -179,9 85,5, -179,99 -85,5, 180 -85,5, 180 85,5))

  2. Добавьте этот файл как Text delimited layer, используя точку с запятой в качестве разделителя и WGS84 в качестве CRS.

  3. Сохраните слой как шейп-файл в CRS вашего полигона, добавьте его на холст и удалите слой текстового файла.

  4. Вычтите из этого свой шейп-файл полигона и установите заливку оставшегося полигона на 100% белого.

  5. Поместите его поверх слоя Openlayers, и для всех уровней масштабирования будет видна только нужная область:

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

Andrej
источник
1
Я подумал об этом, но мне было интересно, есть ли более «элегантное» решение, такое как Mapperz дает выше. Но это работает, и в отличие от решения Mapperz, оно остается подключенным к слою, поэтому детализация динамически масштабируется по мере увеличения.
Llaves