Класс QGeoServiceProvider
Класс QGeoServiceProvider агрегирует доступ к службам, предоставляющим географическую информацию. Подробнее...
| Заголовок: | #include <QGeoServiceProvider> |
| qmake: | QT += location |
| С версии: | Qt 5.6 |
| Наследует: | QObject |
Публичные типы
| перечисление | Ошибка { НетОшибки, ОшибкаНеПоддерживается, ОшибкаНеизвестногоПараметра, ОшибкаОтсутствияНеобходимогоПараметра, ОшибкаПодключения } |
| перечисление | ФункцияГеокодирования { НетФункцийГеокодирования, ОнлайнФункцияГеокодирования, ОффлайнФункцияГеокодирования, ФункцияОбратногоГеокодирования, ЛокализованнаяФункцияГеокодирования, ЛюбыеФункцииГеокодирования } |
| флаги | ФункцииГеокодирования |
| перечисление | ФункцияКартирования { НетФункцийКартирования, ОнлайнФункцияКартирования, ОффлайнФункцияКартирования, ЛокализованнаяФункцияКартирования, ЛюбыеФункцииКартирования } |
| флаги | ФункцииКартирования |
| перечисление | ФункцияНавигации { НетФункцийНавигации, ОнлайнФункцияНавигации, ОффлайнФункцияНавигации, ЛюбыеФункцииНавигации } |
| флаги | ФункцииНавигации |
| перечисление | ФункцияМест { НетФункцийМест, ОнлайнФункцияМест, ОффлайнФункцияМест, ФункцияСохраненияМеста, ..., ЛюбыеФункцииМест } |
| флаги | ФункцииМест |
| перечисление | ФункцияМаршрутизации { НетФункцийМаршрутизации, ОнлайнФункцияМаршрутизации, ОффлайнФункцияМаршрутизации, ЛокализованнаяФункцияМаршрутизации, ..., ЛюбыеФункцииМаршрутизации } |
| флаги | ФункцииМаршрутизации |
Публичные функции
| QGeoServiceProvider(const QString &имяПровайдера, const QVariantMap &параметры = ..., bool разрешитьЭкспериментальные = false) | |
| виртуальный | ~QGeoServiceProvider() |
| QGeoServiceProvider::Ошибка | ошибка() const |
| QString | ошибкаСтрока() const |
| QGeoServiceProvider::ФункцииГеокодирования | функцииГеокодирования() const |
| QGeoCodingManager * | менеджерГеокодирования() const |
| QGeoServiceProvider::ФункцииКартирования | функцииКартирования() const |
| QGeoServiceProvider::ФункцииНавигации | функцииНавигации() const |
| QNavigationManager * | менеджерНавигации() const |
| QPlaceManager * | менеджерМест() const |
| QGeoServiceProvider::ФункцииМест | функцииМест() const |
| QGeoServiceProvider::ФункцииМаршрутизации | функцииМаршрутизации() const |
| QGeoRoutingManager * | менеджерМаршрутизации() const |
| void | разрешитьЭкспериментальные(bool разрешить) |
| void | установитьЛокаль(const QLocale &локаль) |
| void | установитьПараметры(const QVariantMap &параметры) |
- 34 публичных функций унаследованных от QObject
Статические публичные члены
| QStringList | доступныеПровайдерыУслуг() |
- 10 статических публичных членов унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство унаследованное от QObject
- 1 публичный слот унаследованный от QObject
- 2 сигнала унаследованные от QObject
- 1 публичная переменная унаследованная от QObject
- 9 защищенных функций унаследованных от QObject
- 2 защищенных переменных унаследованных от QObject
Подробное описание
Класс QGeoServiceProvider агрегирует доступ к службам, предоставляющим географическую информацию.
API карт и навигации позволяет получать различные виды географической информации, включая функции геокодирования, маршрутизации и отображения карт. QGeoServiceProvider агрегирует доступ к набору этих служб, предоставляемых одним поставщиком.
Возможна смешанная работа поставщиков услуг для различных областей, чтобы менеджер геокодирования от одного поставщика мог использоваться с географическим менеджером маршрутизации от другого поставщика.
Это не рекомендуется, если клиент не может проверить, что данные, предоставляемые различными службами, совместимы, так как различия в базовых наборах данных могут привести к серьезным несоответствиям между службами.
Подклассы QGeoServiceProvider гарантируют, что различные предоставляемые ими услуги совместимы.
На данный момент с Qt поставляются два плагина GeoServices. К ним можно получить доступ, используя их имена поставщиков:
- "mapbox" -> Служба Mapbox
- "here" -> Службы HERE
- "osm" -> Службы OpenStreetMap
- "esri" -> Службы ESRI
Каждый поставщик услуг должен придерживаться соглашения об именовании для имен/ключей параметров, специфичных для услуги. Они используют имя поставщика в качестве префикса для всех имен параметров. Например, поставщику услуг HERE требуется параметр here.app_id. При загрузке поставщика передаются только те параметры, имена параметров которых начинаются с имени поставщика. Это позволяет избежать передачи конфиденциальных параметров, таких как конфиденциальные token или app_id параметры другим плагинам.
Для получения полного списка доступных имен/ключей и значений параметров см. документацию конкретного плагина GeoServices.
Документация по типам членов
перечисление QGeoServiceProvider::Ошибка
Описание ошибки, связанной с загрузкой и настройкой плагина поставщика услуг.
| Постоянная | Значение | Описание |
|---|---|---|
QGeoServiceProvider::NoError |
0 |
Ошибка не произошла. |
QGeoServiceProvider::NotSupportedError |
1 |
Плагин не поддерживает эту функциональность. |
QGeoServiceProvider::UnknownParameterError |
2 |
Плагин не распознал один из переданных параметров. |
QGeoServiceProvider::MissingRequiredParameterError |
3 |
Плагин не нашел один из ожидаемых параметров. |
QGeoServiceProvider::ConnectionError |
4 |
Плагин не смог подключиться к своему бэкенд-сервису или базе данных. |
enum QGeoServiceProvider::GeocodingFeatureflags QGeoServiceProvider::GeocodingFeatures
Описывает поддерживаемые геосервис-провайдером возможности геокодирования.
| Постоянная | Значение | Описание |
|---|---|---|
QGeoServiceProvider::NoGeocodingFeatures |
0 |
Возможности геокодирования не поддерживаются. |
QGeoServiceProvider::OnlineGeocodingFeature |
(1<<0) |
Поддерживается онлайн-геокодирование. |
QGeoServiceProvider::OfflineGeocodingFeature |
(1<<1) |
Поддерживается офлайн-геокодирование. |
QGeoServiceProvider::ReverseGeocodingFeature |
(1<<2) |
Поддерживается обратное геокодирование. |
QGeoServiceProvider::LocalizedGeocodingFeature |
(1<<3) |
Поддерживается возвращение результатов геокодирования с адресами в локальном формате. |
QGeoServiceProvider::AnyGeocodingFeatures |
~(0) |
Совпадает с провайдером геосервиса, предоставляющим любые возможности геокодирования. |
Тип GeocodingFeatures является псевдонимом для QFlags<GeocodingFeature>. Он хранит логическое ИЛИ сочетание значений GeocodingFeature.
enum QGeoServiceProvider::MappingFeatureflags QGeoServiceProvider::MappingFeatures
Описывает поддерживаемые геосервис-провайдером возможности картографирования.
| Постоянная | Значение | Описание |
|---|---|---|
QGeoServiceProvider::NoMappingFeatures |
0 |
Возможности картографирования не поддерживаются. |
QGeoServiceProvider::OnlineMappingFeature |
(1<<0) |
Поддерживается онлайн-картографирование. |
QGeoServiceProvider::OfflineMappingFeature |
(1<<1) |
Поддерживается офлайн-картографирование. |
QGeoServiceProvider::LocalizedMappingFeature |
(1<<2) |
Поддерживается возвращение локально-форматированных данных карты. |
QGeoServiceProvider::AnyMappingFeatures |
~(0) |
Совпадает с провайдером геосервиса, предоставляющим любые возможности картографирования. |
Тип MappingFeatures является псевдонимом для QFlags<MappingFeature>. Он хранит логическое ИЛИ сочетание значений MappingFeature.
enum QGeoServiceProvider::NavigationFeatureflags QGeoServiceProvider::NavigationFeatures
Описывает поддерживаемые геосервис-провайдером возможности навигации.
| Постоянная | Значение | Описание |
|---|---|---|
QGeoServiceProvider::NoNavigationFeatures |
0 |
Возможности навигации не поддерживаются. |
QGeoServiceProvider::OnlineNavigationFeature |
(1<<0) |
Поддерживается онлайн-навигация. |
QGeoServiceProvider::OfflineNavigationFeature |
(1<<1) |
Поддерживается офлайн-навигация. |
QGeoServiceProvider::AnyNavigationFeatures |
~(0) |
Совпадает с провайдером геосервиса, предоставляющим любые возможности навигации. |
Тип NavigationFeatures является псевдонимом для QFlags<NavigationFeature>. Он хранит логическое ИЛИ сочетание значений NavigationFeature.
enum QGeoServiceProvider::PlacesFeatureflags QGeoServiceProvider::PlacesFeatures
Описывает функции мест, поддерживаемые поставщиком гео-услуг.
| Константа | Значение | Описание |
|---|---|---|
QGeoServiceProvider::NoPlacesFeatures |
0 |
Функции мест не поддерживаются. |
QGeoServiceProvider::OnlinePlacesFeature |
(1<<0) |
Поддерживаются онлайн-места. |
QGeoServiceProvider::OfflinePlacesFeature |
(1<<1) |
Поддерживаются оффлайн-места. |
QGeoServiceProvider::SavePlaceFeature |
(1<<2) |
Поддерживается сохранение мест. |
QGeoServiceProvider::RemovePlaceFeature |
(1<<3) |
Поддерживается удаление мест. |
QGeoServiceProvider::SaveCategoryFeature |
(1<<4) |
Поддерживается сохранение категорий. |
QGeoServiceProvider::RemoveCategoryFeature |
(1<<5) |
Поддерживается удаление категорий. |
QGeoServiceProvider::PlaceRecommendationsFeature |
(1<<6) |
Поддерживается поиск рекомендуемых мест, похожих на другое место. |
QGeoServiceProvider::SearchSuggestionsFeature |
(1<<7) |
Поддерживаются предложения поиска. |
QGeoServiceProvider::LocalizedPlacesFeature |
(1<<8) |
Поддерживается возвращение локализованных данных о месте. |
QGeoServiceProvider::NotificationsFeature |
(1<<9) |
Поддерживаются уведомления о изменениях места и категории. |
QGeoServiceProvider::PlaceMatchingFeature |
(1<<10) |
Поддерживается сопоставление мест от двух разных поставщиков гео-услуг. |
QGeoServiceProvider::AnyPlacesFeatures |
~(0) |
Соответствует поставщику гео-услуг, который предоставляет любые функции мест. |
Тип PlacesFeatures — это псевдоним для QFlags<PlacesFeature>. Он хранит логическое ИЛИ комбинацию значений PlacesFeature.
enum QGeoServiceProvider::RoutingFeatureflags QGeoServiceProvider::RoutingFeatures
Описывает функции маршрутизации, поддерживаемые поставщиком гео-услуг.
| Константа | Значение | Описание |
|---|---|---|
QGeoServiceProvider::NoRoutingFeatures |
0 |
Функции маршрутизации не поддерживаются. |
QGeoServiceProvider::OnlineRoutingFeature |
(1<<0) |
Поддерживается онлайн-маршрутизация. |
QGeoServiceProvider::OfflineRoutingFeature |
(1<<1) |
Поддерживается оффлайн-маршрутизация. |
QGeoServiceProvider::LocalizedRoutingFeature |
(1<<2) |
Поддерживается возвращение маршрутов с локализованными адресами и инструкциями. |
QGeoServiceProvider::RouteUpdatesFeature |
(1<<3) |
Поддерживается обновление существующего маршрута на основе текущего местоположения. |
QGeoServiceProvider::AlternativeRoutesFeature |
(1<<4) |
Поддерживается возвращение альтернативных маршрутов. |
QGeoServiceProvider::ExcludeAreasRoutingFeature |
(1<<5) |
Поддерживается указание областей, которые возвращенный маршрут не должен пересекать. |
QGeoServiceProvider::AnyRoutingFeatures |
~(0) |
Соответствует поставщику гео-услуг, который предоставляет любые функции маршрутизации. |
Тип RoutingFeatures — это псевдоним для QFlags<RoutingFeature>. Он хранит логическое ИЛИ комбинацию значений RoutingFeature.
Документация по функциям-членам
QGeoServiceProvider::QGeoServiceProvider(const QString &providerName, const QVariantMap ¶meters = ..., bool allowExperimental = false)
Создает QGeoServiceProvider, у которого бэкенд имеет имя providerName, используя предоставленные parameters.
Если несколько плагинов имеют одинаковое providerName, будет использован плагин с наибольшим reported providerVersion().
Если allowExperimental равно true, то могут быть использованы плагины, помеченные как экспериментальные. По умолчанию экспериментальные плагины не учитываются.
Если плагин, соответствующий providerName, не был загружен, то error() и errorString() предоставят подробности о причинах.
Примечание: Перед передачей списка параметров загружаемому плагину, список фильтруется, чтобы избежать совместного использования параметров плагина с не связанными плагинами поставщиков. Ключи параметров, специфичные для плагина, должны быть префиксрованы именем поставщика (например, here.app_id).
[virtual] QGeoServiceProvider::~QGeoServiceProvider()
Уничтожает объект поставщика услуг.
[static] QStringList QGeoServiceProvider::availableServiceProviders()
Возвращает список имён доступных поставщиков услуг, для использования с конструкторами QGeoServiceProvider.
QGeoServiceProvider::Error QGeoServiceProvider::error() const
Возвращает код ошибки, описывающий ошибку, произошедшую во время последней операции, выполненной этим классом.
QString QGeoServiceProvider::errorString() const
Возвращает строку, описывающую ошибку, произошедшую во время последней операции, выполненной этим классом.
QGeoServiceProvider::GeocodingFeatures QGeoServiceProvider::geocodingFeatures() const
Возвращает поддерживаемые геокодирования возможности поставщика геосервисов.
QGeoCodingManager *QGeoServiceProvider::geocodingManager() const
Возвращает QGeoCodingManager, предоставленный поставщиком услуг.
Эта функция вернёт 0, если поставщик услуг не предоставляет геокодирования.
Эта функция попытается создать экземпляр QGeoCodingManager при первом вызове. Если попытка успешна, QGeoCodingManager будет кэширован, иначе каждый вызов этой функции будет пытаться создать экземпляр QGeoCodingManager, пока создание не будет успешным.
QGeoCodingManager принадлежит этому QGeoServiceProvider и не должен удаляться отдельно. Пользователи должны понимать, что удаление QGeoServiceProvider делает указатель, возвращённый этим методом, недействительным.
После вызова этой функции, error() и errorString() будут сообщать об ошибках, возникших при создании QGeoCodingManager.
QGeoServiceProvider::MappingFeatures QGeoServiceProvider::mappingFeatures() const
Возвращает поддерживаемые возможности картографирования поставщиком геосервисов.
QGeoServiceProvider::NavigationFeatures QGeoServiceProvider::navigationFeatures() const
Возвращает поддерживаемые возможности навигации поставщиком геосервисов.
Эта функция была добавлена в QtLocation 5.11.
QNavigationManager *QGeoServiceProvider::navigationManager() const
Возвращает новый QNavigationManager, предоставленный поставщиком услуг.
После вызова этой функции, error() и errorString() будут сообщать об ошибках, возникших при создании QNavigationManagerEngine.
QPlaceManager *QGeoServiceProvider::placeManager() const
Возвращает QPlaceManager, предоставленный поставщиком услуг.
Эта функция попытается создать экземпляр QPlaceManager при первом вызове. Если попытка успешна, QPlaceManager будет кэширован, иначе каждый вызов этой функции будет пытаться создать экземпляр QPlace до тех пор, пока создание не будет успешным.
QGeoPlaceManager принадлежит этому QGeoServiceProvider и не должен удаляться отдельно. Пользователи должны понимать, что удаление QGeoServiceProvider делает указатель, возвращённый этим методом, недействительным.
После вызова этой функции, error() и errorString() будут сообщать об ошибках, возникших при создании QPlaceManager.
QGeoServiceProvider::PlacesFeatures QGeoServiceProvider::placesFeatures() const
Возвращает поддерживаемые возможности мест поставщиком геосервисов.
QGeoServiceProvider::RoutingFeatures QGeoServiceProvider::routingFeatures() const
Возвращает поддерживаемые возможности маршрутизации поставщиком геосервисов.
QGeoRoutingManager *QGeoServiceProvider::routingManager() const
Возвращает QGeoRoutingManager, предоставленный поставщиком услуг.
Эта функция вернёт 0, если поставщик услуг не предоставляет геосервисов маршрутизации.
Эта функция попытается создать экземпляр QGeoRoutingManager при первом вызове. Если попытка успешна, QGeoRoutingManager будет кэширован, иначе каждый вызов этой функции будет пытаться создать экземпляр QGeoRoutingManager до тех пор, пока создание не будет успешным.
QGeoRoutingManager принадлежит этому QGeoServiceProvider и не должен удаляться отдельно. Пользователи должны понимать, что удаление QGeoServiceProvider делает указатель, возвращённый этим методом, недействительным.
После вызова этой функции, error() и errorString() будут сообщать об ошибках, возникших при создании QGeoRoutingManager.
void QGeoServiceProvider::setAllowExperimental(bool allow)
Устанавливает, считаются ли экспериментальные плагины при поиске правильной библиотеки плагина для этого поставщика услуг как allow.
Важно: это уничтожит все существующие менеджеры, хранящиеся в этом экземпляре поставщика услуг. Вы должны убедиться, что не пытаетесь использовать какие-либо указатели, которые вы ранее получили после вызова этого метода.
void QGeoServiceProvider::setLocale(const QLocale &locale)
Устанавливает локаль, используемую этим поставщиком услуг, на locale. Если соответствующие возможности (см. LocalizedMappingFeature и т. д.), это изменит языки, единицы и другие локально-специфичные атрибуты данных поставщика.
void QGeoServiceProvider::setParameters(const QVariantMap ¶meters)
Устанавливает параметры, используемые для построения отдельных классов менеджеров для этого поставщика услуг, на parameters.
Перед передачей списка параметров загружаемому поставщику услуг, список фильтруется, чтобы избежать совместного использования параметров поставщика с не связанными поставщиками услуг. Ключи параметров, специфичные для поставщика, должны быть префиксрованы именем поставщика (например, here.app_id).
Важно: это уничтожит все существующие менеджеры, хранящиеся в этом экземпляре поставщика услуг. Вы должны убедиться, что не пытаетесь использовать какие-либо указатели, которые вы ранее получили после вызова этого метода.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qgeoserviceprovider.html