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

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


===Добавление в поисковую базу (рекомендуется)===
Этот инструмент может применяться для быстрого добавления базовой карты (т.н. подложки) в проект QGIS.
#[https://my.nextgis.com/signup Зарегистрируйтесь] или [https://qms.nextgis.com/login/ войдите]
#Нажмите «[https://qms.nextgis.com/create Добавить сервис]», чтобы создать источник в формате TMS, WMS, WFS или GeoJSON


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


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


# Иконка в формате SVG ([https://github.com/nextgis/quickmapservices/blob/master/src/data_sources/osm_mapnik/osm.svg пример])
В QGIS, например, есть и собственные провайдеры данных и сторонние расширения для доступа к этим сервисам. WMS и WMTS протоколы реализованы в ядре QGIS. Доступ к TMS сервисам и тайлам XYZ можно организовать используя GDAL WMS Driver. В этом случае нужно подготавливать специальный XML-файл с описанием для GDAL. Это не удобно, так как запомнить адреса сложно, а процесс их ввода каждый раз при смене рабочего места отнимает достаточно много времени.
# Файл описания сервиса metadata.ini ([https://github.com/nextgis/quickmapservices/blob/master/src/data_sources/osm_mapnik/metadata.ini пример]):
 
Существующие расширения для оптимизации работы нас не устроили и мы сделали [http://plugins.qgis.org/plugins/quick_map_services/ QuickMapServices] — расширение, которое позволяет быстро и удобно работать с подложками, получаемыми из различных интернет-сервисов.
 
{{NextGIS}}
 
=== Замечания по установке ===
 
Расширение доступно из [http://plugins.qgis.org/plugins/plugins.xml официального репозитория].
 
QuickMapServices находится в разработке и протестирован с QGIS 2.6 и выше.
 
Исходный код модуля можно получить выполнив команду
 
<pre>git clone git@github.com:nextgis/quickmapservices.git</pre>
 
=== Работа с расширением ===
 
После установки расширения в панели инструментов "Интернет" появится кнопка расширения. Так же появится группа QuickMapServices в одноименном меню.
 
[[Файл:Файл:Quickmapservices-button.png|center]]
 
Кнопка является контейнером для базовых карт из различных источников.
 
[[Файл:multiqml-01.png|center]]
 
При выборе одной из них, карта автоматически подключается в проект в качестве слоя. Слой подключается в конец списка слоёв.
 
=== Почему QuickMapServices ===
 
Для удобной работы с подложками на данный момент существует несколько модулей расширения QGIS: OpenLayers plugin, Tile Map Scale Plugin, TileLayer. QuickMapServices наследует преимущества этих модулей и одновременно исправляет их недостатки:


<pre>
* Использует нативную управляемую реализацию доступа к данным (в отличие от OpenLayers Plugin)
[general]
* Имеет готовый список адресов сервисов и умеет добавлять подложки в один клик (как OpenLayers Plugin, но у последнего скачивание данных фактически происходит через браузер webkit, что не оптимально).
id = osm_mapnik
* Не испытывает проблем с масштабированием надписей на нестандартных масштабах (как Tile Map Scale Plugin, последний использует универсальный драйвер GDAL, что приводит к проблемам с качеством отображения и печати на нестандартных масштабных уровнях в QGIS).
type = TMS
* Использует реализацию доступа к тайлам со сглаживанием на нестандартных масштабных уровнях, что решает проблему отображения подписей на нестандартных масштабных уровнях (как TileLayer Plugin, но последний не имеет удобного способа добавлять готовые подложки).
is_contrib = False
* Cписок сервисов может легко расширяться путем добавления простых ini файлов.
[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


Что касается проекций, эти настройки только декларируют систему координат источника, но не влияют на сетку тайлов.
# Иконка в формате 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 пример])


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


* Если у вас есть аккаунт на Github - пул реквестом к нашему [https://github.com/nextgis/quickmapservices_contrib репозиторию]. Важно: мы ни в коем случае не проверяем и не несем ответственности за содержимое отправляемых в этот репозиторий пользователями описаний сервисов.
* Если есть аккаунт на Github - пул реквестом к нашему [https://github.com/nextgis/quickmapservices репозиторию]
* Если нет аккаунта - завести аккаунт и сделать пул реквест
* Если нет аккаунта - завести аккаунт и сделать пул реквест
* Если нет аккаунта, нет желания заводить аккаунт, не знаете что такое пул реквест и нет желания выяснять то можно так же:
* Если нет аккаунта, нет желания заводить аккаунт, не знаете что такое пул реквест и нет желания выяснять то можно так же:
** Приложить файлы к [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. Но для этого сервис должен отвечать нескольким условиям: его лицензионная чистота не должна вызывать сомнений и он должен быть правильно описан.
=== Известные ограничения ===
 
На текущий момент модуль имеет следующие ограничения:
 
* При использовании 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 Future]
 
Мы продолжаем поддержку модуля и вышеперечисленные задачи могут быть решены в новых версиях QuickMapServices.
 
=== Контакты ===
 
Если вы нашли ошибку или у вас есть предложения по улучшению расширения — воспользуйтесь [https://github.com/nextgis/quickmapservices/issues багтрекером]. Кроме того, вопросы по использованию расширения можно задать авторам [http://nextgis.ru/contact/ напрямую].
 
=== Ссылки по теме ===
 
* [http://gis-lab.info/qa/qgis-install-plugin.html Установка модулей расширения в QGIS]
* [http://gis-lab.info/docs/qgis/ Документация по QGIS]

Версия от 01:40, 24 декабря 2016

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


Описание инструмента.

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

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

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

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

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

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

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

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

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

Исходный код модуля можно получить выполнив команду

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

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

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

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

Multiqml-01.png

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

Почему 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 файлов.

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

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

  1. Иконка в формате SVG (пример)
  2. Файл описания сервиса metadata.ini (пример)

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

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


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

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

На текущий момент модуль имеет следующие ограничения:

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

Мы продолжаем поддержку модуля и вышеперечисленные задачи могут быть решены в новых версиях QuickMapServices.

Контакты

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

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