Подключаемый модуль Qt Location Mapbox GL
Обзор
Этот плагин геосервисов позволяет приложениям получать доступ к картографическим сервисам Mapbox с помощью API Qt Location. Использование этих сервисов регулируется условиями предоставления услуг Mapbox.
Этот плагин отличается от плагина Mapbox, поскольку он использует движок карты Mapbox GL Mapbox GL map engine для отображения как растровых, так и векторных тайлов в реальном времени. Преимуществами являются: текст, расположенный вертикально, антиалиазинг шрифтов, метки, плавно переходящие между уровнями масштабирования, плавное перемещение, наклонение, вращение и непрерывное масштабирование.
Внешний вид и поведение векторных карт можно настроить, создав пользовательские стили карты. Это можно сделать с помощью таких инструментов, как Mapbox Studio.
Подключаемый модуль Mapbox GL геосервисов можно загрузить, используя ключ плагина "mapboxgl".
Оба плагина геосервисов Mapbox требуют токена доступа для доступа к стилям карты и тайлам, размещенным на серверах Mapbox. Чтобы создать учетную запись Mapbox, посетите https://www.mapbox.com/pricing.
Примечание: API этого плагина представлен в Qt 5.9 в качестве предварительной технологии.
Поддержка платформ
Подключаемый модуль Qt Location Mapbox GL поддерживает следующие платформы:
- Microsoft Windows (win32) — Поддерживается, требуется MinGW 5.0+
- Linux X11 — Поддерживается, требуется GCC 4.9+
- macOS — Поддерживается
- Android — Поддерживается
- Embedded Linux — Поддерживается, требуется GCC 4.9+
- iOS — Поддерживается
- WinRT — Не поддерживается
Параметры
Дополнительные параметры плагина
В следующей таблице перечислены дополнительные параметры, которые можно передать в плагин Mapbox.
| Параметр | Описание |
|---|---|
| mapboxgl.access_token | Токен доступа, предоставленный Mapbox. Токен доступа также можно указать с помощью переменной среды MAPBOX_ACCESS_TOKEN, но если он также задан с помощью параметра плагина, этот последний параметр будет иметь приоритет над переменной среды. Если не задано, по умолчанию будет использоваться токен разработки. Токен разработки регулируется условиями предоставления услуг Mapbox и не должен использоваться в рабочей среде. Этот параметр не влияет на стили, размещенные вне серверов Mapbox. |
| mapboxgl.china | Использовать базовые URL-адреса и стили API Mapbox China. Обратите внимание, что для Mapbox China требуется специальный токен доступа. Для получения дополнительной информации свяжитесь с отделом продаж Mapbox. |
| mapboxgl.mapping.additional_style_urls | Дополнительные, разделенные запятыми, URL-адреса стилей Mapbox для добавления к доступным URL-адресам стилей. Дополнительные стили будут добавлены в начало свойства supportedMapTypes элемента Map. |
| mapboxgl.mapping.cache.directory | Абсолютный путь к каталогу кэша тайлов карты, используемому в качестве кэша сетевого диска. По умолчанию кэш размещается в подкаталоге Это кэш по умолчанию, который будет заполняться по мере необходимости до достижения лимита размера, а затем будет удалять наименее используемые тайлы. Этот кэш также может использоваться для хранения оффлайн-тайлов, но базу данных офлайн необходимо заполнить с помощью инструмента offline tool. База данных офлайн будет работать вместе с кэшем по умолчанию в том же файле. Перед созданием базы данных офлайн необходимо соблюдать Условия предоставления услуг Mapbox. Примечание: Имя файла кэша тайлов карты должно быть "mapboxgl.db". При использовании инструмента offline по умолчанию выходное имя - "offline.db". Чтобы использовать сгенерированный выходной файл из инструмента offline, нужно перенести его в соответствующий каталог и переименовать в "mapboxgl.db". Инструмент offline также предоставляет параметр "--output" для указания имени генерируемого выходного файла. |
| mapboxgl.mapping.cache.memory | Определяет, должен ли кэш храниться только в оперативной памяти. Допустимые значения: true и false. Значение по умолчанию — false. При установке в true кэш на диске никогда не создается. Кэш по умолчанию будет работать в оперативной памяти, но база данных офлайн не может использоваться при включенном этом параметре. |
| mapboxgl.mapping.cache.size | Размер кэша ресурсов карты в байтах. По умолчанию размер кэша составляет 50 МБ. Перед увеличением этого значения необходимо соблюдать Условия предоставления услуг Mapbox. |
| mapboxgl.mapping.use_fbo | Устанавливает, использовать ли объект буфера кадра для рендеринга Mapbox GL Native. Допустимые значения: true и false. Значение по умолчанию — true. При установке в false карта рендерится, непосредственно вызывая команды OpenGL через QSGRenderNode, что может улучшить производительность рендеринга. Этот режим экспериментальный и не поддерживает преобразования QQuickItem или обрезку трафаретов. Также могут возникнуть артефакты рендеринга, например, при добавлении в элемент Flipable. |
| mapboxgl.mapping.items.insert_before | Некоторые элементы карты, такие как MapPolyline, MapPolygon и MapRectangle, будут отображаться после верхнего слоя стиля. При установке этого параметра элементы карты будут отображаться до указанного идентификатора слоя, если слой отсутствует в текущем стиле, то применяется поведение по умолчанию. Этот параметр может использоваться для отображения линий маршрута под метками. |
Дополнительные параметры карты
Элемент Map, использующий этот плагин, также может быть настроен с помощью MapParameters, что позволяет вносить изменения в стиль и данные карты во время выполнения.
Примеры того, что в настоящее время можно контролировать с помощью MapParameter:
- Скрыть и показать части карты, такие как дороги и здания.
- Изменить свойства рисования, такие как цвет и непрозрачность различных частей карты.
- Изменить свойства макета, такие как толщина и соединения линий.
- Добавить данные на карту.
- Добавить спрайты на карту.
За исключением экструзии и свойств стиля, основанных на данных, каждое свойство, описанное в Спецификации стиля Mapbox, может быть изменено во время выполнения.
Свойства MapParameters, используемые для управления стилем карты во время выполнения, всегда имеют свойство type, за которым следуют пользовательские свойства, которые по возможности пытаются соответствовать именованию Спецификации стиля Mapbox, заменяя дефис на верхний регистр для технических причин (например, line-cap будет переведено в lineCap).
| Тип параметра | Описание |
|---|---|
| source | Данные стиля источник. При использовании источника типа sourceType geojson, свойство data может быть как встроенным, так и полученным из qrc. Поддерживаемые типы источников: vector, raster, raster-dem и geojson. 'geojson'. |
| layer | Добавляет новый слой стиля на карту. На карте Mapbox GL слои используются в стилях для добавления правил стилизации к определенным подмножествам данных. Слой будет содержать ссылку на данные, для которых они определяют стиль. Используйте атрибут before для вставки слоя перед существующим слоем. |
| paint | Определяет, как будет окрашен слой. Свойства рисования могут использоваться для изменения цвета и непрозрачности дорог на карте или цвета земли, среди прочего. |
| layout | Определяет, как будет выровнен слой. Свойства макета могут использоваться для установки видимости слоя и определения интервала между штрихами в штриховой линии, среди прочего. |
| image | Добавляет спрайт на карту для использования слоем стиля. Это свойство необходимо, если любой слой стиля использует такие свойства, как backgroundPattern, fillPattern, linePattern или iconImage. |
| filter | Фильтр выбирает определенные объекты из слоя. Это можно использовать для добавления слоя из источника GeoJSON, основываясь на определенных частях источника данных, например, используя только точки в GeoJSON. |
Пример использования
В этом примере добавляются данные GeoJSON к карте. Просто добавление source недостаточно для отображения данных. Также необходимо создать layer на основе этого источника. После добавления слоя нам также нужно настроить свойства paint и layout. В данном случае мы изменяем цвет линии на синий и ширину линии на 8 пикселей, а также устанавливаем круглые соединения и окончания линий.
Map {
plugin: Plugin { name: "mapboxgl" }
center: QtPositioning.coordinate(60.170448, 24.942046) // Helsinki
zoomLevel: 12
MapParameter {
type: "source"
property var name: "routeSource"
property var sourceType: "geojson"
property var data: '{ "type": "FeatureCollection", "features": \
[{ "type": "Feature", "properties": {}, "geometry": { \
"type": "LineString", "coordinates": [[ 24.934938848018646, \
60.16830257086771 ], [ 24.943315386772156, 60.16227776476442 ]]}}]}'
}
MapParameter {
type: "layer"
property var name: "route"
property var layerType: "line"
property var source: "routeSource"
// Draw under the first road label layer
// of the mapbox-streets style.
property var before: "road-label-small"
}
MapParameter {
type: "paint"
property var layer: "route"
property var lineColor: "blue"
property var lineWidth: 8.0
}
MapParameter {
type: "layout"
property var layer: "route"
property var lineJoin: "round"
property var lineCap: "round"
}
} Обратите внимание, что порядок добавления параметров важен, потому что между параметрами существует зависимость. Добавление слоя до добавления источника приведет к созданию недействительного слоя, то же самое относится к добавлению свойства рисования для слоя, которого не существует.
Свойства рисования и макета также могут использоваться для стилизации существующих слоев текущего стиля, а не только слоев, созданных во время выполнения. Mapbox Studio может использоваться для проверки слоев заданного стиля.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/location-plugin-mapboxgl.html