Документация
ОС Аврора 5.1.5

Плагин WebTiles

В версии ОС Аврора 4 и выше в Qt Location для стандартного qml-типа Plugin недоступен плагин osm для карт Open Street Maps (OSM). Для того, чтобы подключить OSM, необходимо использовать плагин WebTiles.

Параметры плагина

У плагина имеются следующие параметры.

Название параметра Значение
webtiles.scheme Протокол передачи данных по сети, например, https
webtiles.host Сервер с тайлами карт, например, tile.openstreetmap.org
webtiles.path Формат пути к тайлам на сервере, например, /${z}/${x}/${y}.png
webtiles.useragent Строка-заголовок запроса User-Agent
webtiles.port Порт для подключения к серверу
webtiles.query Запрос к серверу
webtiles.copyright Строка, содержащая сведения о правообладателях тайлов

Список общедоступных серверов можно найти на Wiki OpenStreetMap.

Формирование запроса к тайлам

Навигация по тайлам осуществляется с помощью трёх параметров: x, y, z, — двумерных координат и масштабирования. Следует использовать шаблон ${x}, ${y}, ${z} для автокоррекции при формировании пути или запроса.

Если шаблон запроса к тайлам имеет формат https://tile.openstreetmap.org/${z}/${x}/${y}.png, то параметры должны быть следующими:

Plugin {
    id: mapPlugin

    name: "webtiles"
    allowExperimental: false

    PluginParameter { name: "webtiles.scheme"; value: "https" }
    PluginParameter { name: "webtiles.host"; value: "tile.openstreetmap.org" }
    PluginParameter { name: "webtiles.path"; value: "/${z}/${x}/${y}.png" }
}

Map {
    plugin: mapPlugin
}

В поле name нужно указать имя плагина: webtiles.

Если шаблон запроса к тайлам имеет формат https://tile.server.org/free?x=${z}&y=${x}&z=${y}, то параметры должны быть следующими:

PluginParameter { name: "webtiles.scheme"; value: "https" }
PluginParameter { name: "webtiles.host"; value: "tile.server.org" }
PluginParameter { name: "webtiles.path"; value: "/free" }
PluginParameter { name: "webtiles.query"; value: "x=${z}&y=${x}&z=${y}" }

Больше примеров серверов с тайлами можно найти на Wiki OpenStreetMap.

Использование плагина в эмуляторе

При запуске в эмуляторе у плагина есть ограничение: нельзя запрашивать тайлы по защищённым протоколам. Поэтому вместо https следует использовать http. Пример:

Plugin {
    id: mapPlugin

    name: "webtiles"
    allowExperimental: false

    PluginParameter { name: "webtiles.scheme"; value: "http" }
    PluginParameter { name: "webtiles.host"; value: "a.tile.openstreetmap.fr" }
    PluginParameter { name: "webtiles.path"; value: "/hot/${z}/${x}/${y}.png" }
}

Конфигурация проекта

Для того, чтобы использовать плагин WebTiles в приложении, в .spec- и .desktop-файлах необходимо указать дополнительные настройки конфигурации.

В .spec-файл в секцию Requires нужно добавить зависимости:

- qt5-qtdeclarative-import-positioning
- qt5-qtdeclarative-import-location
- qt5-plugin-geoservices-webtiles

qt5-qtdeclarative-import-positioning подключает QML-модуль для геопозиционирования, qt5-qtdeclarative-import-location подключает QML-модуль для работы с картами, qt5-plugin-geoservices-webtiles подключает непосредственно плагин WebTiles.

В .desktop-файл нужно добавить разрешения Location и Internet.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.