Spec-Zone.ru › Qt 5.9

Плагин 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.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.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, будут отрисовываться после самого верхнего слоя стиля. При установке этого параметра элементы карты будут отрисовываться перед указанным идентификатором слоя, если слой отсутствует в текущем стиле, то применяется стандартное поведение. Этот параметр можно использовать для отображения линий маршрута под метками.

Дополнительные параметры карты

Элемент Map, использующий этот плагин, также можно настроить, используя MapParameters, что позволяет изменять стиль и данные карты во время выполнения.

Примеры того, что в настоящее время можно контролировать с помощью MapParameter:

  • Скрывать и показывать части карты, такие как дороги и здания.
  • Изменять свойства рисования, такие как цвет и непрозрачность различных частей карты.
  • Изменять свойства макета, такие как толщина и соединения линий.
  • Добавлять данные на карту.
  • Добавлять спрайты на карту.

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

У MapParameters, используемых для управления стилем карты во время выполнения, всегда есть свойство type, за которым следуют пользовательские свойства, которые пытаются соответствовать наименованиям Спецификации стиля Mapbox настолько, насколько это возможно, заменяя дефисы на верблюжью нотацию для технических причин (например, line-cap будет переведено в lineCap).

Тип параметра Описание
source Источник данных стиля source. При использовании источника типа sourceType geojson, свойство data может быть как вложено, так и получено из qrc.
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.9/location-plugin-mapboxgl.html

Spec-Zone.ru

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