QPlace Class
QPlace 类表示一组有关地点的数据。更多
Header: | #include <QPlace> |
qmake: | QT += location |
公共函数
QPlace() | |
QPlace(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 |
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(); }
联系人类型设计为字符串值,以便提供商引入新的联系人类型。
为方便起见,有一组函数可返回每种类型的第一个联系人详细信息的值。
扩展属性
正式的应用程序接口可能不包括地点的附加属性。与联系人类似,属性也是基于一套通用的attribute types 。要检索一个扩展属性,可以按以下步骤进行:
if(place.extendedAttributeTypes().contains(QPlaceAttribute::OpeningHours)) qDebug() << place.extendedAttribute(QPlaceAttribute::OpeningHours).text();
属性类型设计为字符串值,以便提供商引入新的属性类型。
内容
QPlace 对象只是一个方便的容器,用于容纳丰富的内容,如图片、评论等。内容的检索应通过QPlaceManager::getPlaceContent() 进行。
内容以QPlaceContent::Collection 的形式存储,其中既包含内容索引,也包含内容本身。这样,开发人员就可以检查某个项目是否已经被检索过,如果没有,就可以请求该内容。
归属
位置有一个富文本属性字符串字段。有些提供商可能会要求在向用户显示位置时显示归属。
类别
可为地点指定不同的类别,以表明该地点与这些类别相关联。保存地点时,唯一有意义的数据是类别 ID,类别的其他数据实际上会被忽略。在保存地点之前,类别必须已经存在(不可能创建一个新类别,将其分配给地点,然后保存地点并期望创建类别)。
保存注意事项
地点 API 目前仅用于保存core 详细信息。不支持保存图片和评论等丰富内容,也不支持保存供应商和评级等详细信息。通常情况下,管理器在保存时会忽略这些字段,如果填充了这些字段,可能会产生警告信息。
地点 API 仅支持保存以下核心详细信息:
- 名称
- 地点 ID
- 地点
- 联系方式
- 图标
- 类别(描述地点的标签式名称)
- 可见性范围
提供商可能只支持其中的一个子集。详情请查看插件文档。
地点 API 明确不支持保存评级、扩展属性、图片、评论、社论和供应商等属性。
成员函数文档
QPlace::QPlace()
构造一个空的位置对象。
[protected]
QPlace::QPlace(const QSharedDataPointer<QPlacePrivate> &dd)
使用dd 作为私有实现,构造一个地点对象。
[noexcept]
QPlace::QPlace(const QPlace &other)
构造other 的副本。
[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 visibility。如果一个地点以未指定的可见性保存,后台会选择一个合适的默认可见性来保存。
另请参阅 setVisibility().
[noexcept]
QPlace &QPlace::operator=(const QPlace &other)
将other 指定为该地点,并返回对该地点的引用。
© 2025 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.