10.1. Занятие: Сервисы веб-карт

Сервисы веб-карт (WMS) - это сервис, размещенный на удаленном сервере. Как и в случае с веб-сайтом, вы можете получить к нему доступ, если у вас есть соединение с сервером. Используя QGIS, вы можете загрузить WMS прямо на свою существующую карту.

Как вы помните из урока по плагинам, можно, например, загрузить новое растровое изображение из Google. Тем не менее, это разовая операция: после того, как вы загрузили изображение, оно не меняется. WMS отличается тем, что это интерактивный сервис, который автоматически обновляет свой вид при панорамировании или масштабировании карты.

Цель этого урока: Использовать WMS и понять ее ограничения.

10.1.1. basic Идем дальше: Загружаем слои WMS

Для выполнения данного упражнения вы можете использовать либо базовую карту, которую вы создали в начале курса, или же просто создать новую карту и загрузить в нее некоторые существующие слои. В приведенном примере мы использовали новую карту и загрузили исходные слои places, landuse и protected_areas и скорректировали условные обозначения:

../../../_images/new_map.png
  1. Загрузите эти слои на новую карту или используйте свою исходную карту с только этими слоями.

  2. Перед тем, как добавить слой WMS, отключите проекцию «на лету» (вкладка Project ► Properties… ► CRS, отметить No CRS (or unknown/non-Earth projection). Это может привести к тому, что слои больше не будут правильно перекрываться, но не волнуйтесь: мы это исправим позже.

  3. Для того, чтобы добавить слои WMS, кликните на кнопку dataSourceManager для того, чтобы открыть диалоговое окно Data Source Manager и включить вкладку addWmsLayer WMS/WMTS.

    ../../../_images/datasourcemanager_wms.png

    Вспомните, как вы подключались к базе данных SpatiaLite или GeoPackage в начале курса. Слои landuse, buildings и roads хранятся в базе данных. Для того, чтобы использовать эти слои, вам надо было сперва подключиться к базе данных. WMS используется аналогичным образом, за исключением того, что слои находятся на удаленном сервере.

  4. Для того, чтобы создать новое подключение к WMS, надо кликнуть на кнопку New.

    Для продолжения работы вам нужен адрес WMS. Существует несколько бесплатных серверов WMS. Один из них `terrestris `_ , который использует набор данных `OpenStreetMap `_ .

  5. Для того, чтобы воспользоваться этим WMS, настройте ее в вашем текущем диалоговом окне следующим образом:

    ../../../_images/new_wms_connection.png
    • Значение поля Name должно быть terrestris.

    • Значение поля URL должно быть https://ows.terrestris.de/osm/service.

  6. Кликните на кнопку OK. Вы должны увидеть в списке новый WMS-сервер:

    ../../../_images/new_connection_listed.png
  7. Кликните на Connect. В списке ниже вы должны увидеть эти новые загруженные записи:

    ../../../_images/new_wms_entries.png

    Это все слои, размещенные на этом сервере WMS.

  8. Click once on the OSM-WMS layer. This will display the default Coordinate Reference System in use and the number of CRSes supported by the dataset:

    ../../../_images/osm_wms_selected.png

    Since we’re not using EPSG:4326 - WGS 84 for our map, let’s find one that meets our needs.

    1. Click the setProjectionSelect CRS button. You will see a standard Coordinate Reference System Selector dialog showing all the CRS the data is published with.

    2. We want a projected CRS, so let’s choose WGS 84 / Pseudo-Mercator with EPSG:3857. You can use the top search Filter widget.

      ../../../_images/pseudo_mercator_selected.png
      1. Кликните на кнопку OK. Система координат, связанная с записью, изменилась.

  9. Click Add to load the layer in your project using Layer name` (default is OpenStreetMap WMS - by terrestris).

  10. Закройте диалоговое окно Data Source Manager, если оно не закрылась автоматически.

  11. На панели Layers кликните и перетащите в конец списка.

  12. Уменьшите масштаб для того, чтобы получить общий вид слоев. Вы заметите, что ваши слои расположены неправильно (рядом с западной Африкой). Это произошло потому, что проецирование «на лету» отключено.

    ../../../_images/reprojection_off.png
  13. Давайте снова включим пере-проецирование, но используя ту же проекцию, что и в слое OpenStreetMap WMS т.е. WGS 84 / Pseudo Mercator.

    1. Откройте вкладку Project ► Properties… ► CRS.

    2. Снимите флажок No CRS (or unknown/non-Earth projection).

    3. Выберите WGS 84 / Pseudo Mercator из списка.

      ../../../_images/enable_projection.png
    4. Кликните на кнопку OK.

  14. Now right-click on one of your own layers in the Layers panel and click Zoom to layer(s). You should see the Swellendam area:

    ../../../_images/wms_result.png

Обратите внимание, как перекрываются улицы слоя WMS и наши улицы. Это хороший знак!

Сущность и ограничения WMS

К настоящему времени вы, возможно, заметили, что этот слой WMS на самом деле имеет много функций. Здесь есть улицы, реки, заповедники и так далее. Даже если он выглядит так, как будто он состоит из векторов, он больше смахивает на растр, но вы не можете изменить его условные обозначения. Почему?

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

Это дает вам несколько преимуществ, вам не нужно беспокоиться об условных обозначениях. Они уже отработаны и на них можно посмотреть на любой грамотно спроектированной WMS.

С другой стороны, вы не сможете изменить условные обозначения, если они вам не нравятся, и если что-то меняется на сервере WMS, они также поменяются на вашей карте. Поэтому иногда вам захочется использовать вместо этого веб-сервисы объектов (WFS), которые предоставляют векторные слои отдельно, а не как часть карты в стиле WMS.

This will be covered in the next lesson, however. First, let’s add another WMS layer.

10.1.2. basic Try Yourself

  1. Add the eAtlas WMS server at this URL: https://maps.eatlas.org.au/maps/wms

  2. Load a World: Hillshading layer into the map.

  3. You might want to set its Encoding to JPEG and its Tile size option to 200 by 200, so that it loads faster.

  4. Your map should look like this (you may need to re-order the layers, and apply some transparency):

    ../../../_images/world_hillshading_result.png

10.1.3. hard Try Yourself

Сложность использования WMS заключается в том, чтобы найти хороший (бесплатный) сервер.

  • Найдите новую WMS на `directory.spatineo.com `_ (или еще где-то в интернете) без надобности оплаты каких-либо услуг или без ограничений и он должен охватывать всю территорию исследования Swellendam.

    Помните, что для использования WMS вам нужен лишь адрес сайта (и желательно какое-то описание).

10.1.4. hard Try Yourself

  • Add the bluemarble layer from the MapServer Demonstration Server. Is that a suitable dataset for our study area?

10.1.5. In Conclusion

Используя WMS, вы можете добавлять неактивные карты в качестве фона для ваших существующих картографических данных.

10.1.6. Further Reading

  • `Spatineo Directory `_

  • `OpenStreetMap.org list of WMS servers `_

10.1.7. What’s Next?

После того как вы добавили неактивную карту в качестве фона, вы будете рады узнать, что вы также можете добавлять объекты (например, другие векторные слои, которые вы добавляли ранее). Добавление объектов с удаленных серверов возможно с помощью веб-сервисов объектов (WFS). Это тема следующего урока.