Spec-Zone.ru › Qt 5.15

Плагин 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 (Terms of Services) и не должен использоваться в производстве. Это свойство не влияет на стили, размещенные вне серверов Mapbox.
mapboxgl.api_base_url Указывает пользовательский базовый URL-адрес API. Если не указан, по умолчанию используется URL https://api.mapbox.com. Этот параметр игнорируется, если установлено свойство mapboxgl.china.
mapboxgl.china Использовать базовые URL-адреса и стили API Mapbox China. Обратите внимание, что Mapbox China требует специального токена доступа. Для получения дополнительной информации обратитесь в отдел продаж Mapbox по адресу https://www.mapbox.com/contact/sales/.
mapboxgl.mapping.additional_style_urls Дополнительные, разделенные запятыми, URL-адреса стилей Mapbox (style URLs), которые нужно добавить к доступным URL-адресам стилей. Дополнительные стили будут добавлены в начало свойства supportedMapTypes элемента Map.
mapboxgl.mapping.cache.directory Абсолютный путь к каталогу кэша тайлов карты, используемому в качестве кэша сетевого диска.

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

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

Этот кеш также может использоваться для хранения оффлайн тайлов, но база данных оффлайн должна быть заполнена с помощью инструмента offline tool. База данных оффлайн будет работать вместе с кешем по умолчанию в одном файле. Убедитесь, что вы соблюдаете условия предоставления услуг Mapbox перед созданием базы данных оффлайн.

Примечание: Имя файла кэша тайлов карты должно быть "mapboxgl.db". При использовании инструмента offline tool, по умолчанию создаётся файл "offline.db". Чтобы использовать созданный файл, вы должны переместить его в правильный каталог и переименовать в "mapboxgl.db". Инструмент offline tool также предоставляет параметр "--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 на карту. Просто добавление источника недостаточно для отображения данных. Также необходимо создать слой на основе этого источника. После добавления слоя нам также нужно задать свойства 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 для слоя, которого не существует.

Свойства рисования и компоновки также можно использовать для стилизации существующих слоев текущего стиля, а не только слоев, созданных во время выполнения. Mapbox Studio можно использовать для проверки слоев заданного стиля.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/location-plugin-mapboxgl.html

Spec-Zone.ru

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