QuickMapServices - быстрая работа с базовыми картами в QGIS

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/quickmapservices.html


Описание инструмента для быстрой работы с подложками в QGIS.

Этот инструмент может применяться для быстрого добавления базовой карты (т.н. подложки) в проект QGIS.

Растровая картографическая подложка часто выступает в качестве первого слоя, добавляемого для работы в проект. Подложка может быть представлена в виде различных интернет-сервисов: TMS, WMS, WMTS, ESRI ArcGIS Service или просто в виде тайлов XYZ.

В настольных ГИС существуют различные средства добавления подложек.

В QGIS, например, есть и собственные провайдеры данных и сторонние расширения для доступа к этим сервисам. WMS и WMTS протоколы реализованы в ядре QGIS. Доступ к TMS сервисам и тайлам XYZ можно организовать используя GDAL WMS Driver. В этом случае нужно подготавливать специальный XML-файл с описанием для GDAL. Это не удобно, так как запомнить адреса сложно, а процесс их ввода каждый раз при смене рабочего места или проекта отнимает достаточно много времени, их надо где-то хранить и т.д.

Существующие расширения для оптимизации работы нас не устроили и мы сделали QuickMapServices — расширение, которое позволяет быстро и удобно работать с различными источниками данных, реализованных в виде интернет-сервисов.

Создано в Nextgis.png Веб ГИС для вашей организации по доступной цене

Установка

Расширение доступно из официального репозитория.

Установка модулей QGIS описана в отдельной статье.

QuickMapServices находится в разработке и протестирован с QGIS 2.6 и выше.

Исходный код

Исходный код модуля (репозиторий на Github) можно получить выполнив команду:

git clone git@github.com:nextgis/quickmapservices.git

Работа с расширением

После установки расширения в панели инструментов "Интернет" появятся кнопки расширения. Так же появится группа QuickMapServices в одноименном меню.

Кнопки добавляемые модулем QuickMapServices

Кнопки можно расположить и на другой, возможно более удобной панели - Управление слоями (изменение панели по умолчанию производится в настройках модуля).

Первая кнопка является контейнером для дерева различных источников данных. Вторая кнопка включает панель поиска.

Меню выбора подложки

При выборе одной из них, карта автоматически подключается в проект в качестве слоя. Слой подключается в конец списка слоёв.

Базовая картографическая основа и слой кадастрового деления с Публичной кадастровой карты

Настройки сервисов хранятся отдельно от самого модуля и при удалении-обновлении модуля они не удаляются.

Почему QuickMapServices

Для удобной работы с подложками на данный момент существует несколько модулей расширения QGIS: OpenLayers plugin, Tile Map Scale Plugin, TileLayer. QuickMapServices наследует преимущества этих модулей и одновременно исправляет их недостатки:

  • Использует нативную управляемую реализацию доступа к данным (в отличие от OpenLayers Plugin)
  • Имеет готовый список адресов сервисов и умеет добавлять подложки в один клик (как OpenLayers Plugin, но у последнего скачивание данных фактически происходит через браузер webkit, что не оптимально).
  • Не испытывает проблем с масштабированием надписей на нестандартных масштабах (как Tile Map Scale Plugin, последний использует универсальный драйвер GDAL, что приводит к проблемам с качеством отображения и печати на нестандартных масштабных уровнях в QGIS).
  • Использует реализацию доступа к тайлам со сглаживанием на нестандартных масштабных уровнях, что решает проблему отображения подписей на нестандартных масштабных уровнях (как TileLayer Plugin, но последний не имеет удобного способа добавлять готовые подложки).
  • Cписок сервисов может легко расширяться путем добавления простых ini файлов.

Если вы используете NextGIS QGIS Future, то вы так же сможете загружать слои опубликованные в ArcGIS Server, например слои с Электронного Атласа Москвы или слой ЗОУИТ (Зоны с особыми условиями использования территории) с Публичной кадастровой карты.

Базовая картографическая основа MapSurfer и слой ЗОУТ (информация в панели справа - через плагин Identify+)

Настройки

Общие настройки

Окно общих настроек можно вызвать из меню расширения. Что можно настроить:

  • Показывать управление подложками из панели "Управление слоями" - по умолчанию управление подложками добавляется в панель "Веб" и ее часто «теряют»;
  • Включать перепроецирование при добавлении тайлового слоя (если опция включена, то в проекте автоматически включается перепроецирование в систему координат EPSG: 3857 Pseudo Mercator);
  • Показывать информацию в панели сообщений (по умолчанию они показываются во всплывающей панели, что не всегда удобно).
Общие настройки

И параметры загрузки тайлов:

  • Максимальное количество соединений для скачивания тайлов;
  • Срок хранения кэша тайлов;
  • Таймаут загрузки тайлов.
Настройки получения тайлов

Настройки подложки

Так как подложка добавленная через QuickMapServices является особым видом слоя, её окно настроек отличается от стандартного окна настроек слоя.

Через настройки подложки можно:

  • Включить-выключить сглаживание
  • Перевести подложку в оттенки серого
  • Настроить яркость, контраст, прозрачность
  • Включить пока копирайтов


Настройки подложки

Дополнительные сервисы

Наверняка у вас есть набор подложек (сервисов) которые вы постоянно используете и вы хотели бы иметь их в плагине причем так, чтобы они устанавливались автоматически вместе с ним самим.

В QuickMapServices есть два хранилища для подложек: базовое и дополнительное. Подложки из базового набора устанавливаются и включаются вместе с модулем расширения. В последней версии модуля появилась возможность так же подключать дополнительные подложки. Просто зайдите в настройках во вкладку Дополнительные сервисы и нажмите «Получить дополнительные источники данных».

Загрузка дополнительных сервисов

Расширенный набор сервисов может выглядеть так:

Полный список сервисов

Создание описаний сервисов

Для добавления сервиса в модуль нужны два файла, используйте примеры:

  1. Иконка в формате SVG (пример)
  2. Файл описания сервиса metadata.ini (пример):
[general]
id = osm_mapnik
type = TMS
is_contrib = False
[ui]
group = osm
alias = OSM Mapnik style
icon = osm.svg
[license]
name = CC-BY-SA 2.0
link = http://creativecommons.org/licenses/by-sa/2.0/
copyright_text =© OpenStreetMap contributors, CC-BY-SA
copyright_link = https://www.openstreetmap.org/copyright
terms_of_use = http://wiki.openstreetmap.org/wiki/Tile_usage_policy
[tms]
url = http://tile.openstreetmap.org/{z}/{x}/{y}.png
zmax = 19

Дополнительные параметры

Могут понадобится также следующие параметры:

  • yOriginTop для слоёв TMS — когда координаты Y растут с юга на север, а не наоборот (пример - Кадастра Украины)
  • quadkeys в url (пример - Bing)
  • epsg_crs_id - код проекции в базе EPSG, например: epsg_crs_id=3857
  • postgis_crs_id - код проекции в соответствии с кодами таблицы spatial_reference в postgis, например: postgis_crs_id=3857
  • custom_proj - описание системы координат в формате proj4, например: custom_proj = +proj=merc +a=6378137 +b=6356752 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs
  • layers - перечень показываемых слоёв если источник - сервер WMS и там их несколько (пример - ПКК), например: layers = 1,2,3,5,6

Что касается проекций, эти настройки только декларируют систему координат источника, но не влияют на сетку тайлов.

Куда отправлять готовые описания сервисов

После того как метаданные и иконка подготовлены их нужно отправить авторам модуля одним из перечисленных способов (в порядке предпочтительности):

  • Если у вас есть аккаунт на Github - пул реквестом к нашему репозиторию. Важно: мы ни в коем случае не проверяем и не несем ответственности за содержимое отправляемых в этот репозиторий пользователями описаний сервисов.
  • Если нет аккаунта - завести аккаунт и сделать пул реквест
  • Если нет аккаунта, нет желания заводить аккаунт, не знаете что такое пул реквест и нет желания выяснять то можно так же:

Полная версия руководства по добавлению сервисов (на английском).

Мы можем перенести сервисы из дополнительных в базовый, так, чтобы они сразу включались с QuickMapServices. Но для этого сервис должен отвечать нескольким условиям: его лицензионная чистота не должна вызывать сомнений и он должен быть правильно описан.

Известные ограничения

QuickMapServices умеет работать через прокси-сервер, но имеет некоторые ограничения:

  • При использовании HTTP прокси-сервера на уровне ОС должны быть заданы необходимые переменные окружения, обеспечивающие корректную работу утилит GDAL, используемых при работе QuickMapServices. Если используется прокси-сервер без аутентификации, то достаточно задать только переменную GDAL_HTTP_PROXY. В ОС Windows это выглядит так:
SET GDAL_HTTP_PROXY = host:port
  • Сервисы на базе ArcGIS Server MapServices через модуль можно загружать только в NextGIS QGIS

Контакты

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

Ссылки по теме