Плагин Qt Location Mapbox GL
Обзор
Этот плагин геосервисов позволяет приложениям получать доступ к картографическим службам Mapbox с помощью API Qt Location. Использование этих сервисов регулируется условиями предоставления услуг Mapbox.
Этот плагин отличается от плагина Mapbox, поскольку он использует движок карты Mapbox GL для отображения как растровых, так и векторных тайлов в реальном времени. Преимуществами являются: текст, сохраняющий вертикальное положение, антиалиасинг шрифтов, метки, плавно перетекающие между уровнями масштабирования, плавное перемещение, наклон, поворот и непрерывный масштабирование.
Внешний вид и поведение векторных карт можно настроить, создав пользовательские стили карт. Это можно сделать с помощью инструментов, таких как 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 — Поддерживается
- Встраиваемый Linux — Поддерживается, требуется GCC 4.9+
- iOS — Поддерживается
- WinRT — Не поддерживается
Параметры
Дополнительные параметры плагина
В следующей таблице перечислены дополнительные параметры, которые можно передать плагину Mapbox.
| Параметр | Описание |
|---|---|
| mapboxgl.access_token | Токен доступа, предоставленный Mapbox. Токен также можно указать, используя переменную среды MAPBOX_ACCESS_TOKEN, но если он также задан с помощью параметра плагина, то этот последний будет иметь приоритет над переменной среды. При отсутствии указания, по умолчанию будет использоваться токен разработки. Токен разработки подлежит условиям предоставления услуг Mapbox Terms of Services и не должен использоваться в рабочей среде. Это свойство не влияет на стили, размещенные вне серверов Mapbox. |
| mapboxgl.mapping.additional_style_urls | Дополнительные, разделенные запятыми, URL-адреса стилей Mapbox style URLs, которые нужно добавить к имеющимся URL-адресам стилей. Дополнительные стили будут добавлены в начало свойства supportedMapTypes элемента Map. |
| mapboxgl.mapping.cache.directory | Абсолютный путь к каталогу кеша тайлов карты, используемому в качестве кеша сетевого диска. По умолчанию кеш находится в подкаталоге Это кеш по умолчанию, то есть он заполняется по мере необходимости до достижения размера лимита, и когда это произойдет, наименее используемые тайлы будут удалены. Этот кеш также может использоваться для хранения оффлайн-тайлов, но база данных оффлайн должна быть заполнена с использованием инструмента offline tool. База данных оффлайн будет работать совместно с кешем по умолчанию в одном файле. Убедитесь, что вы соблюдаете Условия предоставления услуг Mapbox перед созданием оффлайн-базы данных. Примечание: Имя файла кеша тайлов карты должно быть "mapboxgl.db". При использовании инструмента оффлайн, по умолчанию создается "offline.db". Для использования созданного результата из инструмента оффлайн, вам нужно переместить его в соответствующий каталог и переименовать в "mapboxgl.db". Инструмент оффлайн также предоставляет параметр "--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, будут отрисовываться после самого верхнего слоя стиля. С установленным этим параметром элементы карты будут отрисовываться перед указанным ID слоя, если слой отсутствует в текущем стиле, то будет использоваться поведение по умолчанию. Этот параметр можно использовать для отображения линий маршрута под метками. |
Дополнительные параметры карты
Элемент Map, использующий этот плагин, также можно настроить с помощью MapParameters, позволяя изменять стиль и данные карты во время выполнения.
Примеры того, что в настоящее время можно контролировать с помощью MapParameter:
- Скрыть и показать части карты, например, дороги и здания.
- Изменить свойства рисования, такие как цвет и непрозрачность различных частей карты.
- Изменить свойства компоновки, такие как толщина и соединения линий.
- Добавить данные на карту.
- Добавить спрайты на карту.
За исключением экструзии и свойств стиля, зависящих от данных, каждое свойство, описанное в Спецификации стиля Mapbox, можно изменить во время выполнения.
В MapParameters, используемых для управления стилем карты во время выполнения, всегда есть свойство type, за которым следуют пользовательские свойства, которые по возможности соответствуют именованию Спецификации стиля Mapbox, заменяя дефис на верблюжий регистр по техническим причинам (например, line-cap будет переведено в lineCap).
| Тип параметра | Описание | |
|---|---|---|
| source | Данные стиля source. При использовании источника типа sourceType geojson, свойство data может быть как вставленным, так и взятым из qrc. | Поддерживаемые типы источников: vector, raster, raster-dem и geojson. 'geojson'. |
| layer | Добавляет новый слой стиля на карту. На карте Mapbox GL слои используются в стилях для добавления правил стилизации к определенным подмножествам данных. Слой содержит ссылку на данные, для которых он определяет стиль. Используйте атрибут before для вставки слоя перед существующим слоем. | |
| paint | Определяет, как будет нарисована отрисовка слоя. Свойства paint можно использовать для изменения цвета и непрозрачности дорог на карте или цвета земли, среди прочего. | |
| layout | Определяет, как будет компоноваться слой. Свойства 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"
}
} Обратите внимание, что порядок добавления параметров важен, поскольку между ними существует зависимость. Добавление слоя перед добавлением источника создаст недействительный слой, то же самое касается добавления свойства paint для слоя, которого еще нет.
Свойства paint и layout также можно использовать для стилизации существующих слоев текущего стиля, а не только слоев, созданных во время выполнения. Mapbox Studio можно использовать для просмотра слоев данного стиля.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/location-plugin-mapboxgl.html