QuickMapServices - быстрая работа с базовыми картами в QGIS: различия между версиями

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
 
(не показано 37 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{Статья|Опубликована|quickmapservices}}
{{Статья|Опубликована|quickmapservices}}
{{Аннотация|Описание инструмента.}}
{{Аннотация|Описание инструмента для быстрой работы с подложками в QGIS.}}


Этот инструмент может применяться для быстрого добавления базовой карты (т.н. подложки) в проект QGIS.
Этот инструмент может применяться для быстрого добавления базовой карты (т.н. подложки) в проект QGIS.
Строка 8: Строка 8:
В настольных ГИС существуют различные средства добавления подложек.
В настольных ГИС существуют различные средства добавления подложек.


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


Существующие расширения для оптимизации работы нас не устроили и мы сделали [http://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices] — расширение, которое позволяет быстро и удобно работать с подложками, получаемыми из различных интернет-сервисов.
Существующие расширения для оптимизации работы нас не устроили и мы сделали [http://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices] — расширение, которое позволяет быстро и удобно работать с различными источниками данных, реализованных в виде интернет-сервисов.


{{NextGIS}}
{{NextGIS}}


=== Замечания по установке ===
== Установка ==


Расширение доступно из [http://plugins.qgis.org/plugins/plugins.xml официального репозитория].
Расширение доступно из [http://plugins.qgis.org/plugins/quick_map_services/ официального репозитория].
 
Установка модулей QGIS описана в [http://gis-lab.info/qa/qgis-install-plugin.html отдельной статье].


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


Исходный код модуля можно получить выполнив команду
== Исходный код ==
 
Исходный код модуля ([https://github.com/nextgis/quickmapservices репозиторий] на Github) можно получить выполнив команду:


<pre>git clone git@github.com:nextgis/quickmapservices.git</pre>
<pre>git clone git@github.com:nextgis/quickmapservices.git</pre>


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


После установки расширения в панели инструментов "Интернет" появится кнопка расширения. Так же появится группа QuickMapServices в одноименном меню.
[[Файл:QMS-in-QGIS.jpg|center|Кнопки добавляемые модулем QuickMapServices]]


[[Файл:Файл:Quickmapservices-button.png|center]]
Кнопки можно расположить и на другой, возможно более удобной панели - Управление слоями (изменение панели по умолчанию производится в настройках модуля).


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


[[Файл:multiqml-01.png|center]]
[[Файл:qms-contrib-4.png|thumb|center|Меню выбора подложки]]


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


=== Почему QuickMapServices ===
[[Файл:Quickmapservices-02.png|700px|thumb|center|Базовая картографическая основа и слой кадастрового деления с Публичной кадастровой карты]]
 
Настройки сервисов хранятся отдельно от самого модуля и при удалении-обновлении модуля они не удаляются.
 
== Почему QuickMapServices ==


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


=== Добавление сервисов ===
Если вы используете NextGIS QGIS Future, то вы так же сможете загружать слои опубликованные в ArcGIS Server, например слои с Электронного Атласа Москвы или слой ЗОУИТ (Зоны с особыми условиями использования территории) с Публичной кадастровой карты.
 
[[Файл:Quickmapservices-03.png|700px|thumb|center|Базовая картографическая основа MapSurfer и слой ЗОУТ (информация в панели справа - через плагин Identify+)]]
 
== Настройки ==
 
===Общие настройки===
Окно общих настроек можно вызвать из меню расширения. Что можно настроить:
 
* Показывать управление подложками из панели "Управление слоями" - по умолчанию управление подложками добавляется в панель "Веб" и ее часто «теряют»;
* Включать перепроецирование при добавлении тайлового слоя (если опция включена, то в проекте автоматически включается перепроецирование в систему координат EPSG: 3857 Pseudo Mercator);
* Показывать информацию в панели сообщений (по умолчанию они показываются во всплывающей панели, что не всегда удобно).
 
[[Файл:qms-contrib-01.png|419px|thumb|center|Общие настройки]]
 
И параметры загрузки тайлов:
 
* Максимальное количество соединений для скачивания тайлов;
* Срок хранения кэша тайлов;
* Таймаут загрузки тайлов.
 
[[Файл:qms-contrib-01.png|419px|thumb|center|Настройки получения тайлов]]
 
===Настройки подложки===
Так как подложка добавленная через QuickMapServices является особым видом слоя, её окно настроек отличается от стандартного окна настроек слоя.
 
Через настройки подложки можно:
* Включить-выключить сглаживание
* Перевести подложку в оттенки серого
* Настроить яркость, контраст, прозрачность
* Включить пока копирайтов


Для добавления сервиса в модуль нужны два файла, используйте примеры:
 
[[Файл:Qms-basemap-settings.png|446px|thumb|center|Настройки подложки]]
 
== Дополнительные сервисы ==
Наверняка у вас есть набор подложек (сервисов) которые вы постоянно используете и вы хотели бы иметь их в плагине причем так, чтобы они устанавливались автоматически вместе с ним самим.
 
В QuickMapServices есть два хранилища для подложек: базовое и дополнительное. Подложки из базового набора устанавливаются и включаются вместе с модулем расширения. В последней версии модуля появилась возможность так же подключать дополнительные подложки. Просто зайдите в настройках во вкладку Дополнительные сервисы и нажмите «Получить дополнительные источники данных».
 
[[Файл:qms-contrib-03.png|419px|thumb|center|Загрузка дополнительных сервисов]]
 
Расширенный набор сервисов может выглядеть так:
 
[[Файл:qms-contrib-5.png|419px|thumb|center|Полный список сервисов]]
 
== Добавление новых сервисов ==
 
===Добавление в поисковую базу (рекомендуется)===
#[https://my.nextgis.com/signup Зарегистрируйтесь] или [https://qms.nextgis.com/login/ войдите]
#Нажмите «[https://qms.nextgis.com/create Добавить сервис]», чтобы создать источник в формате TMS, WMS, WFS или GeoJSON
 
Сервис будет добавлен в базу и доступен через поиск сервисов.
===Добавление в дерево сервисов===
 
Для добавления сервиса в дерево сервисов нужны два файла, используйте примеры:


# Иконка в формате SVG ([https://github.com/nextgis/quickmapservices/blob/master/src/data_sources/osm_mapnik/osm.svg пример])
# Иконка в формате SVG ([https://github.com/nextgis/quickmapservices/blob/master/src/data_sources/osm_mapnik/osm.svg пример])
# Файл описания сервиса metadata.ini ([https://github.com/nextgis/quickmapservices/blob/master/src/data_sources/osm_mapnik/metadata.ini пример])
# Файл описания сервиса metadata.ini ([https://github.com/nextgis/quickmapservices/blob/master/src/data_sources/osm_mapnik/metadata.ini пример]):
 
<pre>
[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
</pre>
 
=== Дополнительные параметры ===
Могут понадобится также следующие параметры:


После того как метаданные и иконка подготовлены их нужно отправить авторам одним из перечисленных способов (в порядке предпочтительности):
* yOriginTop для слоёв TMS — когда координаты Y растут с юга на север, а не наоборот  ([https://github.com/nextgis/quickmapservices_contrib/blob/master/data_sources/ukr_cadastre_topo/metadata.ini пример - Кадастра Украины])
* quadkeys в url ([https://github.com/nextgis/quickmapservices_contrib/blob/master/data_sources/bing_map/metadata.ini пример - 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 и там их несколько (пример - [https://github.com/nextgis/quickmapservices/blob/master/src/data_sources/rosreestr_cadastre_wms/metadata.ini ПКК]), например: layers = 1,2,3,5,6


* Если есть аккаунт на Github - пул реквестом к нашему [https://github.com/nextgis/quickmapservices репозиторию]
Что касается проекций, эти настройки только декларируют систему координат источника, но не влияют на сетку тайлов.
 
=== Куда отправлять готовые описания сервисов ===
После того как метаданные и иконка подготовлены их нужно отправить авторам модуля одним из перечисленных способов (в порядке предпочтительности):
 
* Если у вас есть аккаунт на Github - пул реквестом к нашему [https://github.com/nextgis/quickmapservices_contrib репозиторию]. Важно: мы ни в коем случае не проверяем и не несем ответственности за содержимое отправляемых в этот репозиторий пользователями описаний сервисов.
* Если нет аккаунта - завести аккаунт и сделать пул реквест
* Если нет аккаунта - завести аккаунт и сделать пул реквест
* Если нет аккаунта, нет желания заводить аккаунт, не знаете что такое пул реквест и нет желания выяснять то можно так же:
* Если нет аккаунта, нет желания заводить аккаунт, не знаете что такое пул реквест и нет желания выяснять то можно так же:
** Приложить файлы к [http://gis-lab.info/forum/viewtopic.php?f=27&t=18464 теме обсуждения модуля] на форуме GIS-Lab
** Приложить файлы к [http://gis-lab.info/forum/viewtopic.php?f=27&t=18464 теме обсуждения модуля] на форуме GIS-Lab
** Просто отправить по [http://nextgis.ru/contact/ почте]
** Просто отправить по [http://nextgis.ru/contact/ почте]


Полная версия руководства по добавлению сервисов ([https://github.com/nextgis/quickmapservices/wiki/Adding-data-source на английском]).
Полная версия руководства по добавлению сервисов ([https://github.com/nextgis/quickmapservices/wiki/Adding-data-source на английском]).


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


* Прокси
== Известные ограничения ==
* Сервисы на базе ArcGIS Server MapServices через модуль можно загружать только в [http://nextgis.ru/nextgis-qgis/ NextGIS QGIS Future]
QuickMapServices умеет работать через прокси-сервер, но имеет некоторые ограничения:


Мы продолжаем поддержку модуля и вышеперечисленные задачи могут быть решены в новых версиях QuickMapServices.
* При использовании HTTP прокси-сервера на уровне ОС должны быть заданы необходимые [http://trac.osgeo.org/gdal/wiki/ConfigOptions#GDALOGRHTTPoptions переменные окружения], обеспечивающие корректную работу утилит GDAL, используемых при работе QuickMapServices. Если используется прокси-сервер без аутентификации, то достаточно задать только переменную GDAL_HTTP_PROXY. В ОС Windows это выглядит так:
<pre>SET GDAL_HTTP_PROXY = host:port</pre>
* Сервисы на базе ArcGIS Server MapServices через модуль можно загружать только в [http://nextgis.ru/nextgis-qgis/ NextGIS QGIS]


=== Контакты ===
== Контакты ==


Если вы нашли ошибку или у вас есть предложения по улучшению расширения — воспользуйтесь [https://github.com/nextgis/quickmapservices/issues багтрекером]. Кроме того, вопросы по использованию расширения можно задать авторам [http://nextgis.ru/contact/ напрямую].
Если вы нашли ошибку или у вас есть предложения по улучшению расширения — воспользуйтесь [https://github.com/nextgis/quickmapservices/issues багтрекером]. Кроме того, вопросы по использованию расширения можно задать авторам [http://nextgis.ru/contact/ напрямую].


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


* [http://gis-lab.info/qa/qgis-install-plugin.html Установка модулей расширения в QGIS]
* [http://gis-lab.info/qa/qgis-install-plugin.html Установка модулей расширения в QGIS]
* [http://gis-lab.info/docs/qgis/ Документация по QGIS]
* [http://gis-lab.info/docs/qgis/ Документация по QGIS]

Текущая версия от 00:43, 24 декабря 2016

Эта страница опубликована в основном списке статей сайта
по адресу 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. Зарегистрируйтесь или войдите
  2. Нажмите «Добавить сервис», чтобы создать источник в формате TMS, WMS, WFS или GeoJSON

Сервис будет добавлен в базу и доступен через поиск сервисов.

Добавление в дерево сервисов

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

  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

Контакты

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

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