Класс QGeoServiceProvider
Класс QGeoServiceProvider агрегирует доступ к службам, предоставляющим географическую информацию. Подробнее...
| Заголовок: | #include <QGeoServiceProvider> |
| qmake: | QT += location |
| С: | Qt 5.6 |
| Наследует: | QObject |
Типы
| перечисление | Error { НетОшибок, ОшибкаНеПоддерживается, ОшибкаНеизвестногоПараметра, ОшибкаОтсутствияОбязательногоПараметра, ОшибкаПодключения } |
| перечисление | GeocodingFeature { НетФункцийГеокодирования, ФункцииГеокодированияОнлайн, ФункцииГеокодированияОфлайн, ФункцииОбратногоГеокодирования, ЛокализованныеФункцииГеокодирования, ЛюбыеФункцииГеокодирования } |
| флаги | GeocodingFeatures |
| перечисление | MappingFeature { НетФункцийКартирования, ФункцииКартированияОнлайн, ФункцииКартированияОфлайн, ЛокализованныеФункцииКартирования, ЛюбыеФункцииКартирования } |
| флаги | MappingFeatures |
| перечисление | NavigationFeature { НетФункцийНавигации, ФункцииНавигацииОнлайн, ФункцииНавигацииОфлайн, ЛюбыеФункцииНавигации } |
| флаги | NavigationFeatures |
| перечисление | PlacesFeature { НетФункцийМест, ФункцииМестОнлайн, ФункцииМестОфлайн, ФункцияСохраненияМеста, ..., ЛюбыеФункцииМест } |
| флаги | PlacesFeatures |
| перечисление | RoutingFeature { НетФункцийМаршрутизации, ФункцииМаршрутизацииОнлайн, ФункцииМаршрутизацииОфлайн, ЛокализованныеФункцииМаршрутизации, ..., ЛюбыеФункцииМаршрутизации } |
| флаги | RoutingFeatures |
Открытые функции
| QGeoServiceProvider(const QString &providerName, const QVariantMap ¶meters = ..., bool allowExperimental = false) | |
| виртуальный | ~QGeoServiceProvider() |
| QGeoServiceProvider::Error | error() const |
| QString | errorString() const |
| QGeoServiceProvider::GeocodingFeatures | geocodingFeatures() const |
| QGeoCodingManager * | geocodingManager() const |
| QGeoServiceProvider::MappingFeatures | mappingFeatures() const |
| QGeoServiceProvider::NavigationFeatures | navigationFeatures() const |
| QNavigationManager * | navigationManager() const |
| QPlaceManager * | placeManager() const |
| QGeoServiceProvider::PlacesFeatures | placesFeatures() const |
| QGeoServiceProvider::RoutingFeatures | routingFeatures() const |
| QGeoRoutingManager * | routingManager() const |
| void | setAllowExperimental(bool allow) |
| void | setLocale(const QLocale &locale) |
| void | setParameters(const QVariantMap ¶meters) |
| void | setQmlEngine(QQmlEngine *engine) |
- 31 открытых функций, унаследованных от QObject
Статические открытые члены
| QStringList | availableServiceProviders() |
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов, унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 2 сигнала, унаследованные от QObject
- 9 защищенных функций, унаследованных от QObject
Подробное описание
Класс QGeoServiceProvider агрегирует доступ к службам, предоставляющим географическую информацию.
API карт и навигации позволяет пользователям получать доступ к различным видам географической информации, включая функции геокодирования, маршрутизации и отображения карт. Класс QGeoServiceProvider агрегирует доступ к набору этих служб, предоставляемых одним поставщиком.
Возможна комбинация поставщиков услуг для различных областей, например, геокодирующий менеджер от одного поставщика может использоваться с географическим менеджером маршрутизации от другого поставщика.
Это не рекомендуется, если клиент не может проверить совместимость данных, предоставляемых различными службами, так как различия в базовых наборах данных могут привести к серьезным несоответствиям между службами.
Подклассы QGeoServiceProvider гарантируют, что различные предоставляемые ими службы взаимосвязаны.
На данный момент с Qt поставляются два плагина GeoServices. Они доступны с помощью своих имён поставщика:
- "mapbox" -> Служба Mapbox
- "here" -> Службы HERE
- "osm" -> Службы OpenStreetMap
- "esri" -> Службы ESRI
Каждый поставщик услуг должен следовать соглашению об именовании для имен/ключей параметров, специфичных для службы. Они используют имя поставщика в качестве префикса для всех имён параметров. Например, поставщику услуг HERE требуется параметр here.app_id. При загрузке поставщика передаются только те параметры, имена параметров которых начинаются с имени поставщика. Это предотвращает совместное использование конфиденциальных параметров, таких как конфиденциальные token или app_id параметры с другими плагинами.
Для получения полного списка доступных имён/ключей параметров и значений ознакомьтесь с документацией конкретного плагина GeoServices.
Документация по типам членов
перечисление QGeoServiceProvider::Error
Описывает ошибку, связанную с загрузкой и настройкой плагина поставщика услуг.
| Постоянная | Значение | Описание |
|---|---|---|
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() предоставят подробности о причинах.
Примечание: Перед передачей списка parameters загружаемому плагину, список фильтруется для предотвращения совместного использования параметров, специфичных для плагина, с не связанными плагинами поставщика. Ключи параметров, специфичные для плагина, должны быть префиксованы именем поставщика (например, 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.
Перед передачей списка parameters загружаемому поставщику услуг, список фильтруется для предотвращения совместного использования параметров, специфичных для поставщика, с не связанными поставщиками услуг. Ключи параметров, специфичные для поставщика, должны быть префиксованы именем поставщика (например, here.app_id).
Важно: это приведёт к уничтожению всех существующих менеджеров, содержащихся в этом экземпляре поставщика услуг. Необходимо убедиться, что после вызова этого метода не используются ранее полученные указатели.
void QGeoServiceProvider::setQmlEngine(QQmlEngine *engine)
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qgeoserviceprovider.html