Класс QGeoServiceProvider
Класс QGeoServiceProvider агрегирует доступ к службам, предоставляющим географическую информацию. Подробнее...
| Заголовок: | #include <QGeoServiceProvider> |
| qmake: | QT += location |
| С момента: | Qt 5.6 |
| Наследует: | QObject |
Типы публичного доступа
| Перечисление | Error { НетОшибок, НеПоддерживается, ОшибкаНеизвестногоПараметра, ОшибкаОтсутствияНеобходимогоПараметра, ОшибкаПодключения } |
| Перечисление | GeocodingFeature { НетФункцийГеокодирования, ОнлайнГеокодирование, ОфлайнГеокодирование, ОбратноеГеокодирование, ЛокализованноеГеокодирование, ЛюбыеФункцииГеокодирования } |
| Флаги | GeocodingFeatures |
| Перечисление | MappingFeature { НетФункцийКартирования, ОнлайнКартирование, ОфлайнКартирование, ЛокализованноеКартирование, ЛюбыеФункцииКартирования } |
| Флаги | MappingFeatures |
| Перечисление | PlacesFeature { НетФункцийМест, ОнлайнМеста, ОфлайнМеста, СохранениеМеста, ..., ЛюбыеФункцииМест } |
| Флаги | PlacesFeatures |
| Перечисление | RoutingFeature { НетФункцийМаршрутизации, ОнлайнМаршрутизация, ОфлайнМаршрутизация, ЛокализованнаяМаршрутизация, ..., ЛюбыеФункцииМаршрутизации } |
| Флаги | RoutingFeatures |
Публичные функции
| QGeoServiceProvider(const QString &providerName, const QVariantMap ¶meters = QVariantMap(), bool allowExperimental = false) | |
| ~QGeoServiceProvider() | |
| Error | error() const |
| QString | errorString() const |
| GeocodingFeatures | geocodingFeatures() const |
| QGeoCodingManager * | geocodingManager() const |
| MappingFeatures | mappingFeatures() const |
| QPlaceManager * | placeManager() const |
| PlacesFeatures | placesFeatures() const |
| RoutingFeatures | routingFeatures() const |
| QGeoRoutingManager * | routingManager() const |
| void | setAllowExperimental(bool allow) |
| void | setLocale(const QLocale &locale) |
| void | setParameters(const QVariantMap ¶meters) |
- 32 public functions inherited from QObject
Статические публичные члены
| QStringList | availableServiceProviders() |
- 11 static public members inherited from QObject
Дополнительные наследуемые члены
- 1 свойство, наследуемое от QObject
- 1 public slot, наследуемый от QObject
- 2 сигнала, наследуемые от QObject
- 9 protected функций, наследуемых от QObject
Подробное описание
Класс QGeoServiceProvider агрегирует доступ к службам, предоставляющим географическую информацию.
API карт и навигации позволяет пользователям получать доступ к различным видам географической информации, включая функции геокодирования, маршрутизации и отображения карт. Класс QGeoServiceProvider агрегирует доступ к набору этих служб, предоставляемых одним поставщиком.
Возможно смешивание и сопоставление поставщиков услуг для различных областей, так что менеджер геокодирования от одного поставщика услуг может использоваться с географическим менеджером маршрутизации от другого поставщика услуг.
Это не рекомендуется, если клиент не может проверить, что данные, предоставляемые различными службами, совместимы, так как различия в базовых наборах данных могут вызвать серьезные несоответствия между службами.
Подклассы QGeoServiceProvider гарантируют, что различные предоставляемые ими службы совместимы.
На данный момент в Qt упакованы два плагина GeoServices. Они доступны с помощью своих имен поставщиков:
- "mapbox" -> Служба Mapbox
- "here" -> Службы HERE
- "osm" -> Службы OpenStreetMap
- "esri" -> Службы ESRI
Каждый поставщик услуг должен следовать соглашению об именовании для имен/ключей параметров специфичных для службы. Они используют имя поставщика в качестве префикса для всех имён параметров. Например, поставщик услуг HERE требует параметр here.app_id. При загрузке поставщика передаются только те параметры, имена которых начинаются с имени поставщика. Это предотвращает совместное использование конфиденциальных параметров, таких как конфиденциальные token или app_id параметры с другими плагинами.
Для получения полного списка доступных имён/ключей и значений параметров см. документацию по соответствующему плагину GeoServices.
Документация типов членов
enum QGeoServiceProvider::Error
Описание ошибки, связанной с загрузкой и настройкой плагина поставщика услуг.
| Константа | Значение | Описание |
|---|---|---|
QGeoServiceProvider::NoError |
0 |
Ошибка не произошла. |
QGeoServiceProvider::NotSupportedError |
1 |
Плагин не поддерживает эту функциональность. |
QGeoServiceProvider::UnknownParameterError |
2 |
Плагин не распознал один из переданных параметров. |
QGeoServiceProvider::MissingRequiredParameterError |
3 |
Плагин не нашёл ожидаемый параметр. |
QGeoServiceProvider::ConnectionError |
4 |
Плагин не смог подключиться к службе или базе данных. |
enum QGeoServiceProvider::GeocodingFeatureФлаги 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::PlacesFeatureflags QGeoServiceProvider::PlacesFeatures
Описывает функции мест, поддерживаемые поставщиком геосервиса.
| Постоянная | Значение | Описание |
|---|---|---|
QGeoServiceProvider::NoPlacesFeatures |
0 |
Функции мест не поддерживаются. |
QGeoServiceProvider::OnlinePlacesFeature |
( 1<<0 ) |
Поддерживаются онлайн-места. |
QGeoServiceProvider::OfflinePlacesFeature |
( 1<<1 ) |
Поддерживаются офлайн-места. |
Тип PlacesFeatures является псевдонимом для QFlags<PlacesFeature>. Он хранит логическое ИЛИ сочетание значений PlacesFeature.
enum QGeoServiceProvider::RoutingFeatureflags QGeoServiceProvider::RoutingFeatures
Описывает функции маршрутизации, поддерживаемые поставщиком геосервиса.
| Постоянная | Значение | Описание |
|---|---|---|
QGeoServiceProvider::NoRoutingFeatures |
0 |
Функции маршрутизации не поддерживаются. |
QGeoServiceProvider::OnlineRoutingFeature |
( 1<<0 ) |
Поддерживается онлайн-маршрутизация. |
Тип RoutingFeatures является псевдонимом для QFlags<RoutingFeature>. Он хранит логическое ИЛИ сочетание значений RoutingFeature.
Документация по функциям-членам
QGeoServiceProvider::QGeoServiceProvider(const QString &providerName, const QVariantMap ¶meters = QVariantMap(), bool allowExperimental = false)
Создаёт экземпляр QGeoServiceProvider, чья задняя часть имеет имя providerName, используя предоставленные parameters.
Если несколько плагинов имеют одинаковое providerName, используется плагин с наивысшей заявленной providerVersion().
Если allowExperimental равно true, то могут использоваться плагины, помеченные как экспериментальные. По умолчанию экспериментальные плагины не учитываются.
Если ни один плагин, соответствующий providerName, не смог загрузиться, то error() и errorString() предоставят подробную информацию о причинах.
Примечание: Перед тем, как список parameters будет передан плагину-поставщику, список фильтруется, чтобы избежать совместного использования плагин-специфичных параметров с несовместимыми плагинами-поставщиками. Ключи параметров, специфичные для плагина, должны быть префиксрованы именем поставщика (например, here.app_id).
QGeoServiceProvider::~QGeoServiceProvider()
Удаляет объект поставщика сервиса.
[static] QStringList QGeoServiceProvider::availableServiceProviders()
Возвращает список имён доступных поставщиков сервисов, для использования с конструкторами QGeoServiceProvider.
Error QGeoServiceProvider::error() const
Возвращает код ошибки, описывающий ошибку, произошедшую во время последней операции, выполненной этим классом.
QString QGeoServiceProvider::errorString() const
Возвращает строку, описывающую ошибку, произошедшую во время последней операции, выполненной этим классом.
GeocodingFeatures QGeoServiceProvider::geocodingFeatures() const
Возвращает функции геокодирования, поддерживаемые поставщиком геосервиса.
QGeoCodingManager *QGeoServiceProvider::geocodingManager() const
Возвращает QGeoCodingManager, предоставленный поставщиком сервиса.
Эта функция вернёт 0, если поставщик сервиса не предоставляет никаких геокодирующих сервисов.
Эта функция попытается создать экземпляр QGeoCodingManager, когда она вызывается в первый раз. Если попытка успешна, QGeoCodingManager будет кэширован, в противном случае каждый вызов этой функции будет пытаться создать экземпляр QGeoCodingManager до тех пор, пока создание не будет успешным.
END_OF_DOCUMENT_MARKERУправляющий QGeoCodingManager принадлежит этому QGeoServiceProvider и не должен удаляться отдельно. Пользователи должны понимать, что удаление QGeoServiceProvider делает указатель, возвращаемый этим методом, недопустимым.
После вызова этой функции error() и errorString() сообщат об ошибках, возникших во время создания QGeoCodingManager.
MappingFeatures QGeoServiceProvider::mappingFeatures() const
Возвращает поддерживаемые географическим сервисом возможности отображения.
QPlaceManager *QGeoServiceProvider::placeManager() const
Возвращает QPlaceManager, предоставленный поставщиком услуг.
Эта функция попытается создать экземпляр QPlaceManager при первом вызове. Если попытка окажется успешной, QPlaceManager будет кэширован, в противном случае каждый вызов этой функции будет пытаться создать экземпляр QPlace, пока создание не окажется успешным.
QGeoPlaceManager принадлежит этому QGeoServiceProvider и не должен удаляться отдельно. Пользователи должны понимать, что удаление QGeoServiceProvider делает указатель, возвращаемый этим методом, недопустимым.
После вызова этой функции error() и errorString() сообщат об ошибках, возникших во время создания QPlaceManager.
PlacesFeatures QGeoServiceProvider::placesFeatures() const
Возвращает поддерживаемые географическим сервисом возможности работы с местами.
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).
Важно: это приведёт к уничтожению всех существующих менеджеров, хранящихся в экземпляре этого поставщика услуг. Убедитесь, что не пытаетесь использовать какие-либо указатели, полученные ранее, после вызова этого метода.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qgeoserviceprovider.html