Класс QPlaceManager
Класс QPlaceManager предоставляет интерфейс, позволяющий клиентам получить доступ к местам, хранящимся в определённом бэкенде. Подробнее...
| Заголовок: | #include <QPlaceManager> |
| qmake: | QT += location |
| С момента: | Qt 5.6 |
| Наследуется от: | QObject |
Публичные функции
| virtual | ~QPlaceManager() |
| QPlaceCategory | category(const QString &categoryId) const |
| QList<QPlaceCategory> | childCategories(const QString &parentId = QString()) const |
| QStringList | childCategoryIds(const QString &parentId = QString()) const |
| QPlace | compatiblePlace(const QPlace &original) |
| QPlaceContentReply * | getPlaceContent(const QPlaceContentRequest &request) const |
| QPlaceDetailsReply * | getPlaceDetails(const QString &placeId) const |
| QPlaceReply * | initializeCategories() |
| QList<QLocale> | locales() const |
| QString | managerName() const |
| int | managerVersion() const |
| QPlaceMatchReply * | matchingPlaces(const QPlaceMatchRequest &request) const |
| QString | parentCategoryId(const QString &categoryId) const |
| QPlaceIdReply * | removeCategory(const QString &categoryId) |
| QPlaceIdReply * | removePlace(const QString &placeId) |
| QPlaceIdReply * | saveCategory(const QPlaceCategory &category, const QString &parentId = QString()) |
| QPlaceIdReply * | savePlace(const QPlace &place) |
| QPlaceSearchReply * | search(const QPlaceSearchRequest &request) const |
| QPlaceSearchSuggestionReply * | searchSuggestions(const QPlaceSearchRequest &request) const |
| void | setLocale(const QLocale &locale) |
| void | setLocales(const QList<QLocale> &locales) |
- 34 публичных функций унаследовано от QObject
Сигналы
| void | categoryAdded(const QPlaceCategory &category, const QString &parentId) |
| void | categoryRemoved(const QString &categoryId, const QString &parentId) |
| void | categoryUpdated(const QPlaceCategory &category, const QString &parentId) |
| void | dataChanged() |
| void | error(QPlaceReply *reply, QPlaceReply::Error error, const QString &errorString = QString()) |
| void | finished(QPlaceReply *reply) |
| void | placeAdded(const QString &placeId) |
| void | placeRemoved(const QString &placeId) |
| void | placeUpdated(const QString &placeId) |
- 2 сигнала унаследовано от QObject
Дополнительные унаследованные члены
- 1 свойство унаследовано от QObject
- 1 публичный слот унаследован от QObject
- 1 публичная переменная унаследована от QObject
- 10 статических публичных членов унаследовано от QObject
- 9 защищённых функций унаследовано от QObject
- 2 защищённые переменные унаследовано от QObject
Подробное описание
Класс QPlaceManager предоставляет интерфейс, позволяющий клиентам получить доступ к местам, хранящимся в определённом бэкенде.
В следующей таблице представлен обзор функциональности, предоставляемой классом QPlaceManager
| Функциональность | Описание |
|---|---|
| Поиск мест | Используя набор параметров, таких как поисковый запрос и область поиска, пользователю могут быть возвращены соответствующие места. |
| Категории | Места могут быть классифицированы как принадлежащие к различным категориям. Менеджер поддерживает доступ к этим категориям. |
| Предложения по поисковым запросам | При заданном частично завершённом поисковом запросе может быть предоставлен список потенциальных поисковых запросов. |
| Рекомендации | При заданном существующем месте может быть предложен набор похожих рекомендуемых мест пользователю. |
| Подробное содержимое | Подробное содержимое, такое как изображения, отзывы и т. д., может быть получено по страницам. |
| Управление местами или категориями | Места и категории могут быть сохранены и удалены. Возможно предоставление уведомлений при этом. |
| Локализация | Могут быть указаны различные языковые настройки, чтобы вернуть данные о месте на разных языках. |
Получение экземпляра QPlaceManager
Создание QPlaceManager осуществляется с помощью QGeoServiceProvider. См. Инициализация менеджера для примера создания менеджера.
Асинхронный интерфейс
Класс QPlaceManager предоставляет абстракцию хранилища данных, содержащего информацию о местоположении. Функции, предоставляемые классом QPlaceManager, в основном асинхронные и следуют модели «запрос-ответ». Обычно менеджеру предоставляется запрос, состоящий из различных наборов параметров, и создаётся объект ответа. Объект ответа имеет сигнал, который сообщает о завершении запроса, и после завершения ответ содержит результаты запроса вместе с любыми ошибками, которые произошли, если таковые имеются.
Асинхронный запрос, как правило, обрабатывается следующим образом:
//1) Make an appropriate request
QPlaceSearchRequest searchRequest;
searchRequest.setSearchTerm("ice cream");
searchRequest.setSearchArea(QGeoCircle(QGeoCoordinate(12.34, 56.78)));
//2) Use the manager to initiate a request and retrieve a reply object
QPlaceSearchReply * searchReply = manager->search(searchRequest);
//3) Connect the reply object to a slot which is invoked upon operation completion
connect(searchReply, SIGNAL(finished()), this, SLOT(processSearchReply()));
...
...
//4) Have the slot appropriately process the results of the operation
void processSearchReply() {
if (searchReply->error() == QPlaceReply::NoError) {
foreach (const QPlaceSearchResult &result, searchReply->results()) {
if (result.type() == QPlaceSearchResult::PlaceResult)
qDebug() << "Title:" << result.title();
}
}
//5) Discard the rely object when done.
searchReply->deleteLater();
searchReply = 0;
} См. Общие операции для получения списка примеров демонстрации использования QPlaceManger.
Инициализация категорий
Иногда во время запуска приложения необходимо вызвать функцию initializeCategories(), чтобы настроить категории. Инициализация категорий позволяет использовать следующие функции:
- QPlaceManager::childCategories()
- QPlaceManager::category()
- QPlaceManager::parentCategoryId()
- QPlaceManager::childCategoryIds();
Если необходимо обновить или перезагрузить категории, можно снова вызвать функцию initializeCategories().
Документация по членам-функциям
[virtual] QPlaceManager::~QPlaceManager()
Удаляет менеджер. Этот деструктор используется внутри QGeoServiceProvider и никогда не должен вызываться в коде приложения.
QPlaceCategory QPlaceManager::category(const QString &categoryId) const
Возвращает категорию, соответствующую заданному categoryId.
[signal] void QPlaceManager::categoryAdded(const QPlaceCategory &category, const QString &parentId)
Этот сигнал испускается, если category была добавлена в хранилище данных менеджера. Родитель category указан параметром parentId.
Этот сигнал испускается только менеджерами, поддерживающими QPlaceManager::NotificationsFeature.
См. также dataChanged().
[signal] void QPlaceManager::categoryRemoved(const QString &categoryId, const QString &parentId)
Этот сигнал испускается, когда категория, соответствующая categoryId, была удалена из хранилища данных менеджера. Родитель удаленной категории указан параметром parentId.
Этот сигнал испускается только менеджерами, поддерживающими QPlaceManager::NotificationsFeature.
См. также dataChanged().
[signal] void QPlaceManager::categoryUpdated(const QPlaceCategory &category, const QString &parentId)
Этот сигнал испускается, если category была изменена в хранилище данных менеджера. Родитель изменённой категории указан параметром parentId.
Этот сигнал испускается только менеджерами, поддерживающими QPlaceManager::NotificationsFeature.
См. также dataChanged().
QList<QPlaceCategory> QPlaceManager::childCategories(const QString &parentId = QString()) const
Возвращает список категорий, являющихся дочерними для категории, соответствующей parentId. Если parentId пуста, возвращаются все категории верхнего уровня.
QStringList QPlaceManager::childCategoryIds(const QString &parentId = QString()) const
Возвращает идентификаторы дочерних категорий категории, соответствующей parentId. Если parentId пуста, возвращаются идентификаторы всех категорий верхнего уровня.
QPlace QPlaceManager::compatiblePlace(const QPlace &original)
Возвращает усеченную или измененную версию места original, пригодную для сохранения в этом менеджере.
В изменённой версии присутствуют только детали места, поддерживаемые этим менеджером. Данные, специфичные для менеджера, такие как идентификатор места, не копируются из original.
[signal] void QPlaceManager::dataChanged()
Этот сигнал испускается менеджером, если в его базовом хранилище данных произошли масштабные изменения, и менеджер считает эти изменения достаточно радикальными, чтобы потребовать от клиентов перезагрузку всех данных.
Если сигнал испущен, другие сигналы для связанных изменений не будут испускаться.
Этот сигнал испускается только менеджерами, поддерживающими QPlaceManager::NotificationsFeature.
[signal] void QPlaceManager::error(QPlaceReply *reply, QPlaceReply::Error error, const QString &errorString = QString())
Этот сигнал испускается, когда в обработке reply обнаружена ошибка. Скорее всего, последует сигнал QPlaceManager::finished().
Ошибка будет описана кодом ошибки error. Если errorString не пустая, она будет содержать текстовое описание ошибки, предназначенное для разработчиков, а не конечных пользователей.
Этот сигнал и QPlaceReply::error() будут испущены одновременно.
Примечание: Не удаляйте объект reply в слоте, подключённом к этому сигналу. Используйте deleteLater() вместо этого.
[signal] void QPlaceManager::finished(QPlaceReply *reply)
Этот сигнал испускается, когда обработка reply завершена.
Если reply->error() равно QPlaceReply::NoError, обработка завершена успешно.
Этот сигнал и QPlaceReply::finished() будут испущены одновременно.
Примечание: Не удаляйте объект reply в слоте, подключённом к этому сигналу. Используйте deleteLater() вместо этого.
QPlaceContentReply *QPlaceManager::getPlaceContent(const QPlaceContentRequest &request) const
Получает содержимое места в соответствии с параметрами, указанными в request.
См. Получение подробного содержимого для примера использования.
QPlaceDetailsReply *QPlaceManager::getPlaceDetails(const QString &placeId) const
Получает подробную информацию о месте, соответствующем заданному placeId.
См. Получение подробной информации о месте для примера использования.
QPlaceReply *QPlaceManager::initializeCategories()
Инициализирует категории менеджера.
См. Использование категорий для примера использования.
QList<QLocale> QPlaceManager::locales() const
Возвращает список предпочтительных локалей. Локали используются в качестве подсказки для менеджера о том, на каком языке должны возвращаться данные о местах и категориях.
Если первая указанная локаль не поддерживается, менеджер переходит к следующей и так далее. Некоторые бэкэнды менеджеров могут не поддерживать строго определённый набор локалей. Примером может служить ситуация, когда некоторые места во Франции могут иметь французскую и английскую локализацию, в то время как в некоторых районах Америки может быть доступна только английская локаль. В этом примере набор поддерживаемых локалей зависит от местоположения поиска.
Если менеджер не может поддерживать ни одну из предпочтительных локалей, он использует поддерживаемый язык, специфичный для бэкэнда.
Поддержка локалей может отличаться от провайдера к провайдеру. Для тех, кто поддерживает её, по умолчанию глобальная локаль устанавливается единственной локалью менеджера.
Для менеджеров, которые не поддерживают локали, список локалей всегда пуст.
См. также setLocales().
QString QPlaceManager::managerName() const
Возвращает имя менеджера
int QPlaceManager::managerVersion() const
Возвращает версию менеджера.
QPlaceMatchReply *QPlaceManager::matchingPlaces(const QPlaceMatchRequest &request) const
Возвращает ответ, содержащий список мест, соответствующих/сопоставленных с указанными в request. Указанные в запросе места поступают от другого менеджера.
QString QPlaceManager::parentCategoryId(const QString &categoryId) const
Возвращает идентификатор родительской категории для категории, соответствующей categoryId.
[signal] void QPlaceManager::placeAdded(const QString &placeId)
Этот сигнал испускается, если место было добавлено в хранилище данных движка менеджера. Конкретное добавленное место указано параметром placeId.
Этот сигнал испускается только менеджерами, поддерживающими QPlaceManager::NotificationsFeature.
См. также dataChanged().
[signal] void QPlaceManager::placeRemoved(const QString &placeId)
Этот сигнал испускается, если место было удалено из хранилища данных менеджера. Конкретное удалённое место указано параметром placeId.
Этот сигнал испускается только менеджерами, поддерживающими QPlaceManager::NotificationsFeature.
См. также dataChanged().
[signal] void QPlaceManager::placeUpdated(const QString &placeId)
Этот сигнал испускается, если место было изменено в хранилище данных менеджера. Конкретное изменённое место указано параметром placeId.
Этот сигнал излучается только менеджерами, которые поддерживают функцию QPlaceManager::NotificationsFeature.
См. также dataChanged().
QPlaceIdReply *QPlaceManager::removeCategory(const QString &categoryId)
Удаляет категорию, соответствующую categoryId, из менеджера.
См. Удаление категории для примера использования.
QPlaceIdReply *QPlaceManager::removePlace(const QString &placeId)
Удаляет место, соответствующее placeId, из менеджера.
См. Удаление места cpp для примера использования.
QPlaceIdReply *QPlaceManager::saveCategory(const QPlaceCategory &category, const QString &parentId = QString())
Сохраняет category, являющуюся дочерней по отношению к категории, указанной parentId. Пустое значение parentId означает, что category сохраняется как категория верхнего уровня.
См. Сохранение категории для примера использования.
QPlaceIdReply *QPlaceManager::savePlace(const QPlace &place)
Сохраняет указанное place.
См. Сохранение места cpp для примера использования.
QPlaceSearchReply *QPlaceManager::search(const QPlaceSearchRequest &request) const
Ищет места в соответствии с параметрами, указанными в request.
См. Обнаружение/Поиск для примера использования.
QPlaceSearchSuggestionReply *QPlaceManager::searchSuggestions(const QPlaceSearchRequest &request) const
Запрашивает набор предложений по поисковым запросам в соответствии с параметрами, указанными в request. request может содержать неполный поисковый запрос, а также другие данные, такие как область поиска, чтобы сузить круг соответствующих результатов.
См. Предложения по поиску для примера использования.
void QPlaceManager::setLocale(const QLocale &locale)
Функция, позволяющая установить список предпочтительных языковых параметров менеджера на один locale.
void QPlaceManager::setLocales(const QList<QLocale> &locales)
Устанавливает список предпочтительных locales.
См. также locales().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qplacemanager.html