Spec-Zone.ru › Qt 5.14

Плагин 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 и не должен использоваться в производстве. Этот параметр не влияет на стили, размещенные вне серверов Mapbox.
mapboxgl.china Использовать базовые URL-адреса и стили API Mapbox China. Обратите внимание, что Mapbox China требует специфический токен доступа. Для получения дополнительной информации обратитесь к Mapbox sales.
mapboxgl.mapping.additional_style_urls Дополнительные, разделенные запятыми, URL-адреса стилей Mapbox, которые нужно добавить к имеющимся URL-адресам стилей. Дополнительные стили будут добавлены в начало свойства supportedMapTypes элемента Map.
mapboxgl.mapping.cache.directory Абсолютный путь к каталогу кеша тайлов карты, используемого в качестве кеша сетевого диска.

По умолчанию кеш размещается в подкаталоге QtLocation/mapboxgl в расположении, возвращаемом QStandardPaths::writableLocation() с параметром QStandardPaths::GenericCacheLocation. На системах, не имеющих концепции общего кеша, используется специфичный для приложения QStandardPaths::CacheLocation.

Это кеш в реальном времени, который заполняется по мере необходимости до достижения лимита размера, а при достижении лимита происходит удаление наименее используемых тайлов.

Этот кеш также можно использовать для хранения оффлайн-тайлов, но базу данных оффлайн необходимо заполнить с помощью инструмента 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, image и 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/qt-5.14/location-plugin-mapboxgl.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API