QPlace Class
QPlace 类表示关于某个地点的一组数据。更多内容...
| Header: | #include <QPlace> |
| qmake: | QT += location |
公共函数
| QPlace() | |
| QPlace(const QPlace &other) | |
| QPlace(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 |
| QPlace & | operator=(const QPlace &other) |
受保护函数
| QPlace(const QSharedDataPointer<QPlacePrivate> &dd) |
相关非成员
| bool | operator!=(const QPlace &lhs, const QPlace &rhs) |
| bool | operator==(const QPlace &lhs, const QPlace &rhs) |
详细说明
“地点”是指一个值得关注的地点,可以是心仪的餐厅、公园或某人的家。QPlace 对象通过作为该地点各类信息的容器,来表示该地点。
这些信息大致可分为两大类
- 详细信息
- 丰富内容
地点详情包括该地点的各项属性,例如名称、位置、联系方式等。当搜索结果中返回某个地点时,这些详情会被自动填充。有时为了节省带宽,关于该地点的更多详情会根据用户兴趣,按地点逐个检索。 可通过调用QPlace::detailsFetched()函数查询是否已获取所有可用详情;若未获取,可使用QPlaceManager::getPlaceDetails()函数进行获取。搜索过程中自动填充的详情与需要单独获取的详情具体有哪些,可能因服务提供商而异。更多详情请参阅插件文档。
地点的丰富内容包括图片、评论和专栏文章等项目。由于丰富内容项可能数量众多,因此它们与地点详情分开处理。可通过QPlaceManager::getPlaceContent() 以分页方式检索这些内容。如有必要,可将内容分配给某个地点,使其充当便捷的容器。
联系信息
地点的联系信息基于一组通用的contact types 。要检索某个地点的所有电话号码,可执行以下操作:
if(place.contactTypes().contains(QPlaceContactDetail::Phone)) {
for(constQPlaceContactDetail&number: place.contactDetails(QPlaceContactDetail::Phone))
qDebug() << number.label() << ":" << number.value();
}根据设计,联系人类型采用字符串值,以便提供商能够引入新的联系人类型。
为方便起见,提供了一组函数,用于返回每种类型中第一个联系人详细信息的值。
扩展属性
地点可能具有正式 API 中未涵盖的附加属性。与联系人属性类似,这些属性基于一组通用的attribute types 标准。要检索一个扩展属性,可执行以下操作:
if(place.extendedAttributeTypes().contains(QPlaceAttribute::OpeningHours))
qDebug() << place.extendedAttribute(QPlaceAttribute::OpeningHours).text();属性类型按设计采用字符串值,以便提供商能够引入新的属性类型。
内容
QPlace 对象仅作为便捷的容器,用于存储图片、评论等丰富内容。内容的检索应通过 `QPlaceManager::getPlaceContent()` 方法进行。
内容以 `QPlaceContent::Collection ` 的形式存储,其中既包含内容的索引,也包含内容本身。这使得开发者能够检查特定项目是否已被检索,若未被检索,则可请求该内容。
署名
地点设有用于存储富文本署名字符串的字段。某些提供商可能要求在向用户显示地点时,必须显示该署名信息。
分类
可以为一个地点分配不同的类别,以表明该地点与这些类别相关。保存地点时,唯一有意义的数据是类别 ID,其余的类别数据实际上会被忽略。 在保存地点之前,该分类必须已经存在(无法先创建新分类,将其分配给该地点,保存该地点,然后期望该分类被创建)。
保存注意事项
Places API 目前仅设计用于保存core 中的详细信息。保存图像、评论等丰富内容,或供应商、评分等详细信息,均不属于受支持的使用场景。通常,管理员在保存时会忽略这些字段,若这些字段已被填写,则可能会触发警告信息。
Places API 仅支持保存以下核心信息:
- 名称
- 地点 ID
- 位置
- 联系方式
- 图标
- 分类(用于描述地点的标签式名称)
- 可见性范围
服务提供商可能仅支持其中的一部分。更多详情请参阅插件文档。
Places API 明确不支持保存评分、扩展属性、图片、评论、编辑内容和供应商等属性。
成员函数文档
QPlace::QPlace()
创建一个空的场所对象。
[protected] QPlace::QPlace(const QSharedDataPointer<QPlacePrivate> &dd)
使用 `dd ` 作为私有实现来构建一个位置对象。
[noexcept] QPlace::QPlace(const QPlace &other)
创建other 的副本。
[constexpr noexcept default] QPlace::QPlace(QPlace &&other)
通过Move构造一个QPlace 实例。
[noexcept] QPlace::~QPlace()
把这地方彻底毁了。
void QPlace::appendContactDetail(const QString &contactType, const QPlaceContactDetail &detail)
向指定contactType 添加联系人detail 。
有关常见contact types 的列表,请参见QPlaceContactDetail 。
QString QPlace::attribution() const
返回该地点的富文本来源标注字符串。请注意,某些提供商可能要求,每当向最终用户显示该地点时,都必须显示来源标注。
另请参阅 setAttribution()。
QList<QPlaceCategory> QPlace::categories() const
返回该地点所属的类别。
另请参阅 setCategories()。
QList<QPlaceContactDetail> QPlace::contactDetails(const QString &contactType) const
返回指定contactType 的联系信息列表。
有关常见contact types 的列表,请参阅QPlaceContactDetail 。
另请参阅 setContactDetails()。
QStringList QPlace::contactTypes() const
返回该地点的联系方式类型。
有关常见的contact types 列表,请参阅QPlaceContactDetail 。
QPlaceContent::Collection QPlace::content(QPlaceContent::Type type) const
返回与某个位置相关联的内容集合。该集合是一个映射,其键为内容对象的索引,值为内容对象本身。
type 指定要检索的内容类型。
另请参阅 setContent()。
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)
将给定type 的content 集合添加到该位置。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 type 对象中的第一个联系人详细信息。如果不存在任何电子邮件地址,则返回空字符串。
QString QPlace::primaryFax() const
返回该地点的主要传真号码。此便捷函数会获取fax type 中的第一个联系信息。如果不存在传真信息,则返回空字符串。
QString QPlace::primaryPhone() const
返回该地点的主要电话号码。此方法将访问phone number type 中的第一个联系信息。如果不存在电话信息,则返回空字符串。
QUrl QPlace::primaryWebsite() const
返回该地点的主要网站。此便捷函数会获取website type 中的首个联系信息。如果不存在任何网站,则返回空字符串。
QPlaceRatings QPlace::ratings() const
返回该地点的综合评分。
另请参阅 setRatings()。
void QPlace::removeContactDetails(const QString &contactType)
删除指定contactType 的所有联系信息。
调用QPlace::contactTypes()时,将不再返回该contactType 。
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)
设置指定contactType 的联系人details 。
如果details 为空,则该contactType 将从该位置移除,从而QPlace::contactTypes() 不再返回该项。
有关常见contact types 的列表,请参阅QPlaceContactDetail 。
另请参阅 contactDetails()。
void QPlace::setContent(QPlaceContent::Type type, const QPlaceContent::Collection &content)
为给定的type 设置一组content 。
另请参阅 content()。
void QPlace::setDetailsFetched(bool fetched)
用于设置该地点的详细信息是否已被fetched 处理过。
另请参阅 detailsFetched()。
void QPlace::setExtendedAttribute(const QString &attributeType, const QPlaceAttribute &attribute)
将指定attributeType 的attribute 分配给某个位置。如果该位置中已存在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)
设置指定type 中内容对象的totalCount 。
另请参阅 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()。
[noexcept] QPlace &QPlace::operator=(const QPlace &other)
将other 赋值给该位置,并返回对该位置的引用。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.