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