Класс QPlaceManager
Класс QPlaceManager предоставляет интерфейс, который позволяет клиентам получать доступ к местам, хранящимся в определённом бэкенде. Подробнее...
| Заголовок: | #include <QPlaceManager> |
| qmake: | QT += location |
| С момента: | Qt 5.6 |
| Наследует: | QObject |
Открытые функции
| ~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) |
- 32 открытых функций, унаследованных от 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
- 11 статических открытых членов, унаследованных от QObject
- 9 защищённых функций, унаследованных от 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() можно вызвать повторно.
Документация по функциям-членам
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/qt-5.9/qplacemanager.html