Класс QGeoCodingManagerEngine
Класс QGeoCodingManagerEngine предоставляет интерфейс и удобные методы для разработчиков плагинов QGeoServiceProvider, которые хотят обеспечить поддержку операций геокодирования. Подробнее...
| Заголовок: | #include <QGeoCodingManagerEngine> |
| qmake: | QT += location |
| С тех пор: | Qt 5.6 |
| Наследуется от: | QObject |
Открытые функции
| QGeoCodingManagerEngine(const QVariantMap ¶meters, QObject *parent = Q_NULLPTR) | |
| virtual | ~QGeoCodingManagerEngine() |
| virtual QGeoCodeReply * | geocode(const QGeoAddress &address, const QGeoShape &bounds) |
| virtual QGeoCodeReply * | geocode(const QString &address, int limit, int offset, const QGeoShape &bounds) |
| QLocale | locale() const |
| QString | managerName() const |
| int | managerVersion() const |
| virtual QGeoCodeReply * | reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds) |
| void | setLocale(const QLocale &locale) |
- 31 открытых функций унаследованных от QObject
Сигналы
| void | error(QGeoCodeReply *reply, QGeoCodeReply::Error error, QString errorString = QString()) |
| void | finished(QGeoCodeReply *reply) |
- 2 сигнала, унаследованные от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 11 статических открытых членов, унаследованных от QObject
- 9 защищенных функций, унаследованных от QObject
Подробное описание
Класс QGeoCodingManagerEngine предоставляет интерфейс и удобные методы для разработчиков плагинов QGeoServiceProvider, которые хотят обеспечить поддержку операций геокодирования.
В реализации по умолчанию, supportsGeocoding() и supportsReverseGeocoding() возвращают false, а geocode() и reverseGeocode() вызывают QGeoCodeReply::UnsupportedOptionError.
Если поставщик услуг поддерживает геокодирование, подкласс должен предоставить реализацию geocode() и вызвать setSupportsGeocoding(true) в какой-то момент времени до вызова geocode().
Аналогично, если поставщик услуг поддерживает обратное геокодирование, подкласс должен предоставить реализацию reverseGeocode() и вызвать setSupportsReverseGeocoding(true) в какой-то момент времени до вызова reverseGeocode().
Подкласс QGeoCodingManagerEngine часто будет использовать подкласс QGeoCodeReply внутри, чтобы добавить любые данные, специфичные для движка (например, объект QNetworkReply для сетевых служб) в экземпляры QGeoCodeReply, используемые движком.
См. также QGeoCodingManager.
Документация по функциям-членам
QGeoCodingManagerEngine::QGeoCodingManagerEngine(const QVariantMap ¶meters, QObject *parent = Q_NULLPTR)
Создает новый движок с указанным parent, используя parameters для передачи любых данных, специфичных для реализации, в движок.
[virtual] QGeoCodingManagerEngine::~QGeoCodingManagerEngine()
Удаляет этот движок.
[signal] void QGeoCodingManagerEngine::error(QGeoCodeReply *reply, QGeoCodeReply::Error error, QString errorString = QString())
Этот сигнал испускается, когда в обработке reply была обнаружена ошибка. Вероятно, последует сигнал QGeoCodingManagerEngine::finished().
Ошибка будет описана кодом ошибки error. Если errorString не пустая, она будет содержать текстовое описание ошибки.
Этот сигнал и QGeoCodeReply::error() будут испускаться одновременно.
Примечание: Не удаляйте объект reply в подключенном к этому сигналу слоте. Используйте deleteLater() вместо этого.
[signal] void QGeoCodingManagerEngine::finished(QGeoCodeReply *reply)
Этот сигнал испускается, когда обработка reply завершена.
Если reply::error() равно QGeoCodeReply::NoError, то обработка завершена успешно.
Этот сигнал и QGeoCodeReply::finished() будут испускаться одновременно.
Примечание: Не удаляйте объект reply в подключенном к этому сигналу слоте. Используйте deleteLater() вместо этого.
[virtual] QGeoCodeReply *QGeoCodingManagerEngine::geocode(const QGeoAddress &address, const QGeoShape &bounds)
Начинает геокодирование address. Геокодирование — это процесс поиска координат, соответствующих заданному адресу.
Будет возвращен объект QGeoCodeReply, который можно использовать для управления операцией геокодирования и получения результатов.
Этот движок и возвращенный объект QGeoCodeReply будут испускать сигналы, указывающие на завершение операции или возникновение ошибок.
Если supportsGeocoding() возвращает false, произойдет QGeoCodeReply::UnsupportedOptionError.
После завершения операции с помощью QGeoCodeReply::locations() можно получить результаты, которые будут состоять из списка объектов QGeoLocation. Эти объекты представляют собой комбинацию координат и данных адреса.
Данные адреса, возвращенные в результатах, могут отличаться от address. Это обычно происходит, если сервер геокодирования использует другую каноническую форму адресов или если address был заполнен только частично.
Если bounds не null и является допустимым QGeoShape, он будет использоваться для ограничения результатов теми, которые содержатся в bounds. Это особенно полезно, если address заполнен только частично, так как служба попытается геокодировать все совпадения для заданных данных.
Пользователь несет ответственность за удаление возвращенного объекта reply, хотя это можно сделать в слоте, подключенном к QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::error(), QGeoCodeReply::finished() или QGeoCodeReply::error() с помощью deleteLater().
[virtual] QGeoCodeReply *QGeoCodingManagerEngine::geocode(const QString &address, int limit, int offset, const QGeoShape &bounds)
Начинает геокодирование для местоположения, соответствующего address.
Будет возвращен объект QGeoCodeReply, который можно использовать для управления операцией геокодирования и получения результатов.
Этот движок и возвращенный объект QGeoCodeReply будут испускать сигналы, указывающие на завершение операции или возникновение ошибок.
После завершения операции, метод QGeoCodeReply::locations() можно использовать для получения результатов, которые будут представлять собой список объектов QGeoLocation. Эти объекты представляют собой комбинацию координат и данных адреса.
Если limit имеет значение -1, будет возвращен весь набор результатов, в противном случае будет возвращено не более limit результатов.
Параметр offset используется для того, чтобы геокодирование не возвращало первые offset результатов.
Результаты limit и offset используются вместе для реализации постраничной навигации.
Если bounds не равно нулю и является допустимым объектом QGeoShape, он будет использован для ограничения результатов теми, которые содержатся в bounds.
Пользователь несет ответственность за удаление возвращенного объекта ответа, хотя это можно сделать в слоте, подключенном к сигналам QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::error(), QGeoCodeReply::finished() или QGeoCodeReply::error() с использованием метода deleteLater().
QLocale QGeoCodingManagerEngine::locale() const
Возвращает локаль, используемую для указания геокодирующему менеджеру языка, который должен использоваться для результатов.
См. также setLocale().
QString QGeoCodingManagerEngine::managerName() const
Возвращает имя, которое эта реализация движка использует для отличия от реализаций, предоставленных другими плагинами.
Сочетание managerName() и managerVersion() должно быть уникальным для всех реализаций плагинов.
int QGeoCodingManagerEngine::managerVersion() const
Возвращает версию этой реализации движка.
Сочетание managerName() и managerVersion() должно быть уникальным для всех реализаций плагинов.
[virtual] QGeoCodeReply *QGeoCodingManagerEngine::reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds)
Начинает обратное геокодирование координаты coordinate. Обратное геокодирование — это процесс поиска адреса, соответствующего заданным координатам.
Будет возвращен объект QGeoCodeReply, который можно использовать для управления операцией обратного геокодирования и получения результатов операции.
Этот движок и возвращенный объект QGeoCodeReply будут генерировать сигналы, указывающие на завершение операции или возникновение ошибок.
Если метод supportsReverseGeocoding() возвращает false, произойдет ошибка QGeoCodeReply::UnsupportedOptionError.
В этот момент метод QGeoCodeReply::locations() можно использовать для получения результатов, которые будут представлять собой список объектов QGeoLocation. Эти объекты представляют собой комбинацию координат и данных адреса.
Данные координат, возвращенные в результатах, могут отличаться от coordinate. Это обычно происходит, если бэкенд службы обратного геокодирования смещает координаты, чтобы они были ближе к соответствующим адресам, или если бэкенд возвращает результаты на нескольких уровнях детализации.
Если бэкенд службы обратного геокодирования возвращает несколько результатов, они будут предоставлены в порядке убывания специфичности. Это обычно происходит, если бэкенд настроен на обратное геокодирование на нескольких уровнях детализации. Например, некоторые службы будут возвращать пары адрес-координаты для уличного адреса, города, штата и страны.
Если bounds не равно нулю и является допустимым объектом QGeoShape, он будет использован для ограничения результатов теми, которые содержатся в bounds.
Пользователь несет ответственность за удаление возвращенного объекта ответа, хотя это можно сделать в слоте, подключенном к сигналам QGeoCodingManagerEngine::finished(), QGeoCodingManagerEngine::error(), QGeoCodeReply::finished() или QGeoCodeReply::error() с использованием метода deleteLater().
void QGeoCodingManagerEngine::setLocale(const QLocale &locale)
Устанавливает локаль, используемую этим менеджером, в locale.
Если этот геокодирующий менеджер поддерживает возвращение результатов на разных языках, они будут возвращены на языке locale.
Если локаль не установлена, используется системная локаль по умолчанию.
См. также locale().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qgeocodingmanagerengine.html