Класс QPlace
Класс QPlace представляет собой набор данных о месте. Подробнее...
| Заголовок: | #include <QPlace> |
| qmake: | QT += location |
| С версии: | Qt 5.6 |
Этот класс был введён в Qt 5.6.
Открытые функции
| QPlace(const QPlace &other) | |
| QPlace() | |
| QPlace & | operator=(const QPlace &other) |
| ~QPlace() | |
| void | appendContactDetail(const QString &contactType, const QPlaceContactDetail &detail) |
| QString | attribution() const |
| QList<QPlaceCategory> | categories() const |
| QList<QPlaceContactDetail> | contactDetails(const QString &contactType) const |
| QStringList | contactTypes() const |
| QPlaceContent::Collection | content(QPlaceContent::Type type) const |
| bool | detailsFetched() const |
| QPlaceAttribute | extendedAttribute(const QString &attributeType) const |
| QStringList | extendedAttributeTypes() const |
| QPlaceIcon | icon() const |
| void | insertContent(QPlaceContent::Type type, const QPlaceContent::Collection &content) |
| bool | isEmpty() const |
| QGeoLocation | location() const |
| QString | name() const |
| QString | placeId() const |
| QString | primaryEmail() const |
| QString | primaryFax() const |
| QString | primaryPhone() const |
| QUrl | primaryWebsite() const |
| QPlaceRatings | ratings() const |
| void | removeContactDetails(const QString &contactType) |
| void | removeExtendedAttribute(const QString &attributeType) |
| void | setAttribution(const QString &attribution) |
| void | setCategories(const QList<QPlaceCategory> &categories) |
| void | setCategory(const QPlaceCategory &category) |
| void | setContactDetails(const QString &contactType, QList<QPlaceContactDetail> details) |
| void | setContent(QPlaceContent::Type type, const QPlaceContent::Collection &content) |
| void | setDetailsFetched(bool fetched) |
| void | setExtendedAttribute(const QString &attributeType, const QPlaceAttribute &attribute) |
| void | setIcon(const QPlaceIcon &icon) |
| void | setLocation(const QGeoLocation &location) |
| void | setName(const QString &name) |
| void | setPlaceId(const QString &identifier) |
| void | setRatings(const QPlaceRatings &rating) |
| void | setSupplier(const QPlaceSupplier &supplier) |
| void | setTotalContentCount(QPlaceContent::Type type, int totalCount) |
| void | setVisibility(QLocation::Visibility visibility) |
| QPlaceSupplier | supplier() const |
| int | totalContentCount(QPlaceContent::Type type) const |
| QLocation::Visibility | visibility() const |
| bool | operator!=(const QPlace &other) const |
| bool | operator==(const QPlace &other) const |
Защищённые функции
| QPlace(const QSharedDataPointer<QPlacePrivate> &dd) | |
| QSharedDataPointer<QPlacePrivate> & | d() |
Подробное описание
Место — это точка интереса, это может быть любимый ресторан, парк или чей-то дом. Объект QPlace представляет место, выступая в качестве контейнера для различной информации об этом месте.
Эта информация может быть разделена на 2 широких классификации
- Подробности
- Богатое содержимое
Подробности о месте состоят из свойств места, таких как имя, местоположение, контактная информация и так далее. Когда место возвращается во время поиска, эти подробности заполняются. Иногда, чтобы сэкономить полосу пропускания, есть дополнительные сведения о месте, которые можно получить для каждого места в отдельности, если пользователь заинтересован. Функция QPlace::detailsFetched() может быть запрошена, чтобы узнать, были ли получены все доступные подробности, и если нет, QPlaceManager::getPlaceDetails() может использоваться для их получения. Точно, какие детали заполняются во время поиска и какие необходимо получать индивидуально, может варьироваться от провайдера к провайдеру. См. документацию плагина для получения более подробной информации.
Богатое содержимое места состоит из элементов, таких как изображения, отзывы и статьи. Возможно, может быть много элементов богатого содержимого, поэтому они обрабатываются отдельно от деталей места. Их можно получить по страницам с помощью QPlaceManager::getPlaceContent(). При необходимости содержимое может быть назначено месту, чтобы оно могло действовать как удобный контейнер.
Информация о контакте
Информация о контакте места основана на общем наборе типов контактов. Чтобы получить все номера телефонов места, можно сделать следующее:
if (place.contactTypes().contains(QPlaceContactDetail::Phone)) {
foreach (const QPlaceContactDetail &number, place.contactDetails(QPlaceContactDetail::Phone))
qDebug() << number.label() << ":" << number.value();
} Типы контактов по своему дизайну представляют собой строковые значения, что позволяет поставщикам вводить новые типы контактов.
Для удобства существует набор функций, которые возвращают значение первого детализированного контакта каждого типа.
Расширенные атрибуты
Места могут иметь дополнительные атрибуты, которые не охватываются в официальном API. Подобно контактам, атрибуты основаны на общем наборе типов атрибутов. Чтобы получить расширенный атрибут, можно сделать следующее:
if (place.extendedAttributeTypes().contains(QPlaceAttribute::OpeningHours))
qDebug() << place.extendedAttribute(QPlaceAttribute::OpeningHours).text(); Типы атрибутов по своему дизайну представляют собой строковые значения, что позволяет поставщикам вводить новые типы атрибутов.
Содержимое
Объект QPlace предназначен только для удобного хранения богатого содержимого, такого как изображения, отзывы и т. д. Получение содержимого должно происходить через QPlaceManager::getPlaceContent().
Содержимое хранится как QPlaceContent::Collection, которое содержит как индекс содержимого, так и само содержимое. Это позволяет разработчикам проверять, был ли определённый элемент уже получен, и если нет, запрашивать это содержимое.
Атрибуция
Места имеют поле для строки атрибуции форматированного текста. Некоторые поставщики могут потребовать, чтобы атрибуция отображалась при отображении места пользователю.
Категории
Различным категориям может быть назначено место, чтобы указать, что место связано с этими категориями. При сохранении места единственными значимыми данными являются идентификатор категории; остальная часть данных категории фактически игнорируется. Категория должна уже существовать перед сохранением места (создать новую категорию, назначить её месту, сохранить место и ожидать создания категории невозможно).
Ограничения при сохранении
API мест в настоящее время предназначен только для сохранения основных деталей. Сохранение богатого содержимого, такого как изображения и отзывы, или деталей, таких как поставщик и рейтинг, не является поддерживаемым сценарием использования. Обычно менеджер обычно игнорирует эти поля при сохранении и может вывести сообщение об ошибке, если они заполнены.
API мест поддерживает только сохранение следующих основных деталей:
- имя
- идентификатор места
- местоположение
- детали контактов
- значок
- категории (похожие на теги имена для описания места)
- объём видимости
Возможно, поставщики будут поддерживать только подмножество этих деталей. Для получения дополнительной информации см. документацию по плагинам.
Сохранение таких свойств, как рейтинг, расширенные атрибуты, изображения, отзывы, статьи и поставщик, явно не поддерживается API мест.
Документация по функциям членов
[protected] QPlace::QPlace(const QSharedDataPointer<QPlacePrivate> &dd)
Создаёт объект места, используя dd в качестве частной реализации.
QPlace::QPlace(const QPlace &other)
Создаёт копию other.
QPlace::QPlace()
Создаёт пустой объект места.
QPlace &QPlace::operator=(const QPlace &other)
Присваивает other этому месту и возвращает ссылку на это место.
QPlace::~QPlace()
Удаляет это место.
void QPlace::appendContactDetail(const QString &contactType, const QPlaceContactDetail &detail)
Добавляет контактную деталь заданного типа contactType.
См. QPlaceContactDetail для списка распространённых типов контактов.
QString QPlace::attribution() const
Возвращает строку атрибуции форматированного текста места. Обратите внимание, что у некоторых поставщиков может быть требование, согласно которому атрибуция должна отображаться всякий раз, когда место отображается конечному пользователю.
См. также setAttribution().
QList<QPlaceCategory> QPlace::categories() const
Возвращает категории, к которым принадлежит это место.
См. также setCategories().
QList<QPlaceContactDetail> QPlace::contactDetails(const QString &contactType) const
Возвращает список контактных деталей указанного типа contactType.
См. QPlaceContactDetail для списка распространённых типов контактов.
См. также setContactDetails().
QStringList QPlace::contactTypes() const
Возвращает тип контактных деталей, которыми обладает это место.
См. QPlaceContactDetail для списка распространённых типов контактов.
QPlaceContent::Collection QPlace::content(QPlaceContent::Type type) const
Возвращает коллекцию содержимого, связанного с местом. Эта коллекция является отображением, где ключ — индекс объекта содержимого, а значение — сам объект содержимого.
type указывает, какой тип содержимого нужно получить.
См. также setContent().
[protected] QSharedDataPointer<QPlacePrivate> &QPlace::d()
Возвращает указатель d.
bool QPlace::detailsFetched() const
Возвращает true, если данные этого места были получены, иначе возвращает false.
См. также setDetailsFetched().
QPlaceAttribute QPlace::extendedAttribute(const QString &attributeType) const
Возвращает расширенный атрибут, соответствующий указанному attributeType. Если место не имеет этого типа атрибута, возвращается QPlaceExtendedAttribute с конструктором по умолчанию.
См. также setExtendedAttribute().
QStringList QPlace::extendedAttributeTypes() const
Возвращает типы расширенных атрибутов, которыми обладает это место.
QPlaceIcon QPlace::icon() const
Возвращает значок места.
См. также setIcon().
void QPlace::insertContent(QPlaceContent::Type type, const QPlaceContent::Collection &content)
Добавляет коллекцию content заданного типа type в место. Любой индекс в content, который уже существует, перезаписывается.
bool QPlace::isEmpty() const
Возвращает булево значение, указывающее, все поля места пусты или нет.
QGeoLocation QPlace::location() const
Возвращает местоположение места.
См. также setLocation().
QString QPlace::name() const
Возвращает имя места.
См. также setName().
QString QPlace::placeId() const
Возвращает идентификатор места. Идентификатор места значим только для QPlaceManager, который его сгенерировал, и не передаётся между менеджерами. Идентификатор места не гарантируется как универсально уникальный, но уникален для менеджера, который его сгенерировал.
См. также setPlaceId().
QString QPlace::primaryEmail() const
Возвращает первичный адрес электронной почты для этого места. Эта функция удобства получает первую контактную деталь типа email. Если адресов электронной почты нет, возвращается пустая строка.
QString QPlace::primaryFax() const
Возвращает первичный номер факса для этого места. Эта функция удобства получает первую контактную деталь типа fax. Если детали факса отсутствуют, возвращается пустая строка.
QString QPlace::primaryPhone() const
Возвращает основной номер телефона для этого места. Это обращение к первому контактному элементу типа «номер телефона». Если данные о телефоне отсутствуют, возвращается пустая строка.
QUrl QPlace::primaryWebsite() const
Возвращает основной веб-сайт места. Эта функция удобства обращается к первому контактному элементу типа «веб-сайт». Если веб-сайты отсутствуют, возвращается пустая строка.
QPlaceRatings QPlace::ratings() const
Возвращает агрегированный рейтинг места.
См. также setRatings().
void QPlace::removeContactDetails(const QString &contactType)
Удаляет все контактные данные заданного типа contactType.
contactType больше не возвращается при вызове QPlace::contactTypes().
void QPlace::removeExtendedAttribute(const QString &attributeType)
Удаляет атрибут attributeType из места.
Атрибут больше не будет отображаться в QPlace::extendedAttributeTypes().
void QPlace::setAttribution(const QString &attribution)
Устанавливает строку attribution места.
См. также attribution().
void QPlace::setCategories(const QList<QPlaceCategory> &categories)
Устанавливает categories, к которым принадлежит это место.
См. также categories().
void QPlace::setCategory(const QPlaceCategory &category)
Устанавливает одну category, к которой принадлежит это место.
void QPlace::setContactDetails(const QString &contactType, QList<QPlaceContactDetail> details)
Устанавливает контактные details указанного типа contactType.
Если details пусто, то contactType удаляется из места, и больше не возвращается методом QPlace::contactTypes().
См. QPlaceContactDetail для списка распространённых типов контактов.
См. также contactDetails().
void QPlace::setContent(QPlaceContent::Type type, const QPlaceContent::Collection &content)
Устанавливает набор content для заданного типа type.
См. также content().
void QPlace::setDetailsFetched(bool fetched)
Устанавливает, были ли данные этого места fetched или нет.
См. также detailsFetched().
void QPlace::setExtendedAttribute(const QString &attributeType, const QPlaceAttribute &attribute)
Присваивает атрибут attribute заданного типа attributeType месту. Если заданный attributeType уже существует в месте, он перезаписывается.
Если attribute является конструктором по умолчанию QPlaceAttribute, то attributeType удаляется из места, что означает, что он не будет отображаться в QPlace::extendedAttributeTypes().
См. также extendedAttribute().
void QPlace::setIcon(const QPlaceIcon &icon)
Устанавливает icon места.
См. также icon().
void QPlace::setLocation(const QGeoLocation &location)
Устанавливает location места.
См. также location().
void QPlace::setName(const QString &name)
Устанавливает name места.
См. также name().
void QPlace::setPlaceId(const QString &identifier)
Устанавливает identifier места.
См. также placeId().
void QPlace::setRatings(const QPlaceRatings &rating)
Устанавливает агрегированный rating места.
См. также ratings().
void QPlace::setSupplier(const QPlaceSupplier &supplier)
Устанавливает поставщика этого места в supplier.
См. также supplier().
void QPlace::setTotalContentCount(QPlaceContent::Type type, int totalCount)
Устанавливает totalCount объектов контента заданного типа type.
См. также totalContentCount().
void QPlace::setVisibility(QLocation::Visibility visibility)
Устанавливает видимость места на visibility.
См. также visibility().
QPlaceSupplier QPlace::supplier() const
Возвращает поставщика этого места.
См. также setSupplier().
int QPlace::totalContentCount(QPlaceContent::Type type) const
Возвращает общее количество объектов контента заданного типа type. Это общее количество указывает, сколько элементов должен иметь менеджер/поставщик. (В отличие от того, сколько объектов в данный момент назначено этому месту).
Отрицательное значение означает, что общее количество элементов неизвестно. По умолчанию общее количество контента установлено в 0.
См. также setTotalContentCount().
QLocation::Visibility QPlace::visibility() const
Возвращает видимость места.
По умолчанию видимость нового места установлена в QtLocatin::Unspecified. Если место сохраняется с неопределенной видимостью, бэкенд выбирает подходящую по умолчанию видимость для сохранения.
См. также setVisibility().
bool QPlace::operator!=(const QPlace &other) const
Возвращает true, если other не равно этому месту, в противном случае возвращает false.
bool QPlace::operator==(const QPlace &other) const
Возвращает true, если other равно этому месту, в противном случае возвращает false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qplace.html