Spec-Zone.ru › Qt 5.15

Qt Location GeoServices

Плагин Qt Location предоставляет большую часть своей функциональности через плагины GeoService. Данный документ описывает, как разрабатывать новый плагин GeoService.

Описание плагина

Каждый плагин описывается файлом json. Файл json описывает возможности и версию плагина. Ниже приведен пример файла json, используемого плагином OpenStreenMap:

{
    "Keys": ["osm"],
    "Provider": "osm",
    "Version": 100,
    "Experimental": false,
    "Features": [
        "OnlineMappingFeature",
        "OnlineGeocodingFeature",
        "ReverseGeocodingFeature",
        "OnlineRoutingFeature",
        "OnlinePlacesFeature"
    ]
}

Элементы имеют следующее значение:

Ключ Описание
Keys Уникальное имя/ключ плагина. Каждый плагин GeoService должен иметь уникальное имя.
Provider Имя поставщика сервисов. Несколько плагинов могут иметь одинаковое имя. В таких случаях для дальнейшего различения плагинов будет использоваться строка Version.
Experimental Помечает плагин сервиса как экспериментальный. Разработчики API могут выбрать игнорирование таких плагинов при создании QGeoServiceProvider::QGeoServiceProvider().
Version Версия плагина. Если несколько плагинов имеют одинаковое имя поставщика, будет использоваться плагин с самой высокой версией.
Features Список функций, предоставляемых плагином/сервисом. Каждая функция представляет собой строковое представление соответствующих функций в QGeoServiceProvider. Для получения более подробной информации см. QGeoServiceProvider::routingFeatures(), QGeoServiceProvider::geocodingFeatures() и QGeoServiceProvider::placesFeatures().

Реализация плагинов

Разработчик плагина должен унаследовать класс QGeoServiceProviderFactory и столько классов ManagerEngine, сколько ему нужно для предоставления реализаций.

Наследование QGeoServiceProviderFactory подразумевает переопределение одного из следующих методов:

  • QGeoServiceProviderFactory::createGeocodingManagerEngine()
  • QGeoServiceProviderFactory::createRoutingManagerEngine()
  • QGeoServiceProviderFactory::createPlaceManagerEngine()

Если плагин не предоставляет движок, соответствующая функция должна возвращать 0.

QGeoCodingManagerEngine

Интерфейс и вспомогательные методы для разработчиков плагинов QGeoServiceProvider, которые хотят предоставить поддержку операций геокодирования

QGeoRoutingManagerEngine

Интерфейс и вспомогательные методы для разработчиков плагинов QGeoServiceProvider, которые хотят предоставить доступ к географической маршрутизации

QGeoServiceProviderFactoryV2

Класс фабрики, используемый в качестве интерфейса плагина для сервисов, связанных с географической информацией

QPlaceManagerEngine

Интерфейс для разработчиков плагинов QGeoServiceProvider, которые хотят предоставить доступ к функциональности мест

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qtlocation-geoservices.html

Spec-Zone.ru

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