Класс 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) |
- 31 открытых функций, унаследованных от 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
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов, унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от 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().
Документация по членам-функциям
[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().
END_OF_DOCUMENT_MARKER
[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.12/qplacemanager.html