Класс QGeoCodingManager
Класс QGeoCodingManager предоставляет поддержку операций геокодирования. Подробнее...
| Заголовок: | #include <QGeoCodingManager> |
| qmake: | QT += location |
| С тех пор: | Qt 5.6 |
| Наследует: | QObject |
Этот класс был представлен в Qt 5.6.
Открытые функции
| virtual | ~QGeoCodingManager() |
| QGeoCodeReply * | geocode(const QGeoAddress &address, const QGeoShape &bounds = QGeoShape()) |
| QGeoCodeReply * | geocode(const QString &address, int limit = -1, int offset = 0, const QGeoShape &bounds = QGeoShape()) |
| QLocale | locale() const |
| QString | managerName() const |
| int | managerVersion() const |
| QGeoCodeReply * | reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds = QGeoShape()) |
| void | setLocale(const QLocale &locale) |
Сигналы
| void | error(QGeoCodeReply *reply, QGeoCodeReply::Error error, QString errorString = QString()) |
| void | finished(QGeoCodeReply *reply) |
Подробное описание
Функции geocode() и reverseGeocode() возвращают объекты QGeoCodeReply, которые управляют этими операциями и сообщают о результате операций и любых возникших ошибках.
Функции geocode() и reverseGeocode() могут использоваться для преобразования экземпляров QGeoAddress в экземпляры QGeoCoordinate и наоборот.
Функция geocode() также перегружена, чтобы позволить пользователю выполнить операцию геокодирования свободного текста, если предоставленная строка может быть интерпретирована как адрес, она может быть геокодирована в координатную информацию.
К экземплярам QGeoCodingManager можно получить доступ с помощью QGeoServiceProvider::geocodingManager().
Документация по функциям-членам
[signal] void QGeoCodingManager::error(QGeoCodeReply *reply, QGeoCodeReply::Error error, QString errorString = QString())
Этот сигнал генерируется, когда при обработке reply была обнаружена ошибка. Сигнал QGeoCodingManager::finished() будет, вероятно, следовать за ним.
Ошибка будет описана кодом ошибки error. Если errorString не пустая, она будет содержать текстовое описание ошибки.
Этот сигнал и QGeoCodeReply::error() будут генерироваться одновременно.
Примечание: Не удаляйте объект reply в слоте, подключенном к этому сигналу. Используйте deleteLater() вместо этого.
[signal] void QGeoCodingManager::finished(QGeoCodeReply *reply)
Этот сигнал генерируется, когда обработка reply завершена.
Если reply::error() равно QGeoCodeReply::NoError, обработка завершилась успешно.
Этот сигнал и QGeoCodeReply::finished() будут генерироваться одновременно.
Примечание: Не удаляйте объект reply в слоте, подключенном к этому сигналу. Используйте deleteLater() вместо этого.
[virtual] QGeoCodingManager::~QGeoCodingManager()
Уничтожает этот менеджер.
QGeoCodeReply *QGeoCodingManager::geocode(const QGeoAddress &address, const QGeoShape &bounds = QGeoShape())
Начинает геокодирование address. Геокодирование — это процесс поиска координат, соответствующих данному адресу.
Будет возвращен объект QGeoCodeReply, который может использоваться для управления операцией геокодирования и возврата результатов операции.
Этот менеджер и возвращаемый объект QGeoCodeReply будут генерировать сигналы, указывающие на завершение операции или возникновение ошибок.
Если supportsGeocoding() возвращает false, произойдёт QGeoCodeReply::UnsupportedOptionError.
После завершения операции QGeoCodeReply::locations() можно использовать для получения результатов, которые будут содержать список объектов QGeoLocation. Эти объекты представляют собой комбинацию координат и данных адреса.
Данные адреса, возвращенные в результатах, могут отличаться от address. Это обычно происходит, если бэкенд службы геокодирования использует другую каноническую форму адресов или если address был заполнен только частично.
Если bounds не пустое и является допустимым QGeoShape, оно будет использоваться для ограничения результатов теми, которые содержатся внутри bounds. Это особенно полезно, если address заполнен только частично, так как служба попытается геокодировать все совпадения для указанных данных.
Пользователь отвечает за удаление возвращаемого объекта reply, хотя это можно сделать в слоте, подключенном к QGeoCodingManager::finished(), QGeoCodingManager::error(), QGeoCodeReply::finished() или QGeoCodeReply::error() с помощью deleteLater().
QGeoCodeReply *QGeoCodingManager::geocode(const QString &address, int limit = -1, int offset = 0, const QGeoShape &bounds = QGeoShape())
Начинает геокодирование местоположения, соответствующего address.
Будет возвращен объект QGeoCodeReply, который может использоваться для управления операцией геокодирования и возврата результатов операции.
Этот менеджер и возвращаемый объект QGeoCodeReply будут генерировать сигналы, указывающие на завершение операции или возникновение ошибок.
После завершения операции QGeoCodeReply::locations() можно использовать для получения результатов, которые будут содержать список объектов QGeoLocation. Эти объекты представляют собой комбинацию координат и данных адреса.
Если limit равно -1, будет возвращен весь набор результатов, в противном случае будет возвращено не более limit результатов.
Параметр offset используется для того, чтобы попросить службу геокодирования не возвращать первые offset результатов.
Результаты limit и offset используются вместе для реализации постраничной навигации.
Если bounds не пустое и является допустимым QGeoShape, оно будет использоваться для ограничения результатов теми, которые содержатся внутри bounds.
Пользователь отвечает за удаление возвращаемого объекта reply, хотя это можно сделать в слоте, подключенном к QGeoCodingManager::finished(), QGeoCodingManager::error(), QGeoCodeReply::finished() или QGeoCodeReply::error() с помощью deleteLater().
QLocale QGeoCodingManager::locale() const
Возвращает локаль, используемую для указания менеджеру геокодирования языка, который нужно использовать для результатов.
См. также setLocale().
QString QGeoCodingManager::managerName() const
Возвращает имя движка, реализующего поведение этого менеджера геокодирования.
Комбинация managerName() и managerVersion() должна быть уникальной среди реализаций плагинов.
int QGeoCodingManager::managerVersion() const
Возвращает версию движка, реализующего поведение этого менеджера геокодирования.
Комбинация managerName() и managerVersion() должна быть уникальной среди реализаций плагинов.
QGeoCodeReply *QGeoCodingManager::reverseGeocode(const QGeoCoordinate &coordinate, const QGeoShape &bounds = QGeoShape())
Начинает обратное геокодирование координаты coordinate. Обратное геокодирование — это процесс поиска адреса, соответствующего заданной координате.
Будет возвращён объект QGeoCodeReply, который можно использовать для управления операцией обратного геокодирования и получения результатов операции.
Этот менеджер и возвращённый объект QGeoCodeReply будут излучать сигналы, указывающие, завершилась ли операция или произошли ошибки.
Если функция supportsReverseGeocoding() возвращает false, произойдёт ошибка QGeoCodeReply::UnsupportedOptionError.
В этом случае можно использовать QGeoCodeReply::locations() для получения результатов, которые будут состоять из списка объектов QGeoLocation. Эти объекты представляют собой комбинацию данных о координатах и адресе.
Данные координат, возвращаемые в результатах, могут отличаться от coordinate. Это обычно происходит, если сервер обратного геокодирования смещает координаты, чтобы они были ближе к соответствующим адресам, или если сервер возвращает результаты на нескольких уровнях детализации.
Если сервер обратного геокодирования возвращает несколько результатов, они будут предоставлены в порядке убывания точности. Это обычно происходит, если сервер настроен на обратное геокодирование на нескольких уровнях детализации. Например, некоторые сервисы будут возвращать пары адрес-координаты для адреса на улице, города, штата и страны.
Если bounds не null и является допустимым QGeoRectangle, он будет использоваться для ограничения результатов теми, которые находятся внутри bounds.
Пользователь отвечает за удаление возвращенного объекта ответа, хотя это можно сделать в слоте, подключенном к QGeoCodingManager::finished(), QGeoCodingManager::error(), QGeoCodeReply::finished() или QGeoCodeReply::error() с помощью deleteLater().
void QGeoCodingManager::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/qt-5.15/qgeocodingmanager.html