- class QGeoSatelliteInfoSource#
QGeoSatelliteInfoSource
类是一个抽象基类,用于分发卫星信息更新。 更多…概要#
属性#
minimumUpdateIntervalᅟ
- 此属性持有检索卫星更新所需的最小时间(以毫秒为单位)updateIntervalᅟ
- 此属性持有每次更新之间请求的间隔(以毫秒为单位)
方法#
def
__init__()
定义
sourceName()
虚方法#
信号#
静态函数#
注意
这份文档可能包含自动从C++转换为Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,也可以在 https:/bugreports.qt.io/projects/PYSIDE上创建一个工单来告知我们。
详细描述#
静态函数
createDefaultSource()
创建适合该平台的默认卫星数据源,如果可用。否则,将检查可用的QGeoPositionInfoSourceFactory
插件,看是否有可用的卫星数据源。调用
startUpdates()
和stopUpdates()
以开始和停止定期更新,或调用requestUpdate()
以请求单次更新。当有更新可用时,将发出satellitesInViewUpdated()
和/或satellitesInUseUpdated()
。如果需要定期卫星更新,可以使用
setUpdateInterval()
来指定这些更新应该发出的频率。如果没有指定间隔,则会在每次可用时简单地提供更新。例如// Emit updates every 10 seconds if available QGeoSatelliteInfoSource *source = QGeoSatelliteInfoSource::createDefaultSource(0); if (source) source->setUpdateInterval(10000);
要移除之前设置的更新间隔,可以调用
setUpdateInterval()
并传递一个值为 0。注意
卫星源可能对更新间隔有最小值要求,如
minimumUpdateInterval()
返回。注意
要从 Android 服务中使用此类,请参阅 Qt 位置信息在 Android .
- class Error#
Error 枚举表示可能发生的错误。
常量
描述
QGeoSatelliteInfoSource.AccessError
由于应用程序缺少所需的权限,连接到卫星后端的设置失败。
QGeoSatelliteInfoSource.ClosedError
卫星后端关闭了连接,例如,当用户将位置服务切换为关闭时。此对象变得无效,应该被删除。稍后可以通过调用
createDefaultSource()
创建一个新的卫星源。QGeoSatelliteInfoSource.NoError
没有发生错误。
QGeoSatelliteInfoSource.UnknownSourceError
发生了未知错误。
QGeoSatelliteInfoSource.UpdateTimeoutError
无法在指定的超时时间内检索当前卫星信息。
注意
当使用
from __feature__ import true_property
时可以直接使用属性,否则通过访问器函数使用。- 属性minimumUpdateIntervalᅟ: int#
此属性保留着检索卫星更新所需的最小时间(以毫秒为单位)。
这是
setUpdateInterval()
和requestUpdate()
所接受的最小值。- 属性updateIntervalᅟ: int#
此属性保留着每次更新之间所需的请求间隔(以毫秒为单位)。
如果没有设置更新间隔(或设置为0),则源将根据需要经常提供更新。
如果设置了更新间隔,则源将按尽可能接近请求间隔的间隔提供更新。如果请求的间隔小于
minimumUpdateInterval()
,则将使用最小间隔代替。更新间隔的改变将在尽可能短的时间内发生,但是时间可能会因实现而异。是否将先前间隔经过的时间计入新间隔内也是实现相关的。
此属性的默认值为0。
注意
子类实现必须调用基类的 setUpdateInterval() 实现以确保 updateInterval() 返回正确的值。
- 静态availableSources()#
- 返回类型:
字符串列表
返回一个包含可用的源插件的列表,包括如果有可用的默认系统后端,也会包括它。
- backendProperty(name)#
- 参数:
name – str
- 返回类型:
对象
返回名为
name
的后端特定属性的值,如果存在的话。否则,返回的值将是无效的。另请参阅
创建并返回一个指定
parent
的源,它从系统默认的卫星更新信息源读取,或者读取可用的最高优先级插件。如果没有默认的卫星源,找不到有效的插件或用户没有访问卫星数据的权限,则返回
nullptr
。- static createDefaultSource(parameters, parent)
- 参数:
parameters – 键是 .QString 类型,值是 QVariant 类型的字典。
parent –
QObject
- 返回类型:
创建并返回一个指定
parent
的卫星源,它从系统默认的卫星数据源读取,或读取可用最高优先级的插件。如果没有默认的卫星源,找不到有效的插件或用户没有访问卫星信息的权限,则返回
nullptr
。此方法将
parameters
传递给工厂以配置源。通过加载名为
sourceName
的插件,创建并返回给定parent
的源。如果找不到插件,则返回
nullptr
。- static createSource(sourceName, parameters, parent)
- 参数:
sourceName – 字符串
parameters – 键是 .QString 类型,值是 QVariant 类型的字典。
parent –
QObject
- 返回类型:
通过加载名为
sourceName
的插件,创建并返回给定parent
的卫星源。如果找不到插件,则返回
nullptr
。此方法将
parameters
传递给工厂以配置源。返回最后发生的错误。
注意
从 Qt6 开始,在调用
startUpdates()
或requestUpdate()
时始终重置最后错误。当发生错误时,发出此信号。参数
satelliteError
描述了错误的类型。- 抽象 minimumUpdateInterval()#
- 返回类型:
int
属性
minimumUpdateInterval
的获取器。- 抽象 requestUpdate([timeout=0])#
- 参数:
timeout – int
尝试获取当前卫星信息,并使用此信息触发
satellitesInViewUpdated()
和satellitesInUseUpdated()
。如果在给定的timeout
(以毫秒为单位)内找不到当前卫星信息,或者如果timeout
小于minimumUpdateInterval()
返回的值,将发出一个含有UpdateTimeoutError
的errorOccurred()
信号。如果超时为零,超时默认设置为适合源的一个合理时长。
如果有其他更新请求正在进行,则此操作不做任何操作。然而,即使已经调用
startUpdates()
并且有常规更新在进行时,也可以调用此操作。注意
从Qt6开始,此方法在请求卫星信息之前总是将最后错误重置为
NoError
。注意
要了解如何从Android服务中使用此方法,请参阅Android上的Qt定位 。
- satellitesInUseUpdated(satellites)#
- 参数:
satellites – QGeoSatelliteInfo列表
如果调用
startUpdates()
或requestUpdate()
,则当可用的卫星数量更新时,会触发此信号。这些是用于获取“定位”的卫星——即,用于确定当前位置的卫星。
satellites
参数持有当前正在使用的卫星。- satellitesInViewUpdated(satellites)#
- 参数:
satellites – QGeoSatelliteInfo列表
如果调用
startUpdates()
或requestUpdate()
,当当前视图中的卫星信息更新可用时,会发出此信号。satellites
参数包含当前视图中的卫星。- setBackendProperty(name, value)#
- 参数:
name – str
值 - 对象
- 返回类型:
布尔型
将名为
name
的后端特定属性设置为value
。如果成功则返回true
,否则返回false
。后端特定属性可以用来在运行时配置卫星信息子系统的行为。另请参阅
- setUpdateInterval(msec)#
- 参数:
msec - 整数
另请参阅
updateInterval
属性的设置器。- sourceName()#
- 返回类型:
字符串
返回正在使用的卫星源实现唯一名称。
这是可以传递给
createSource()
以创建特定卫星源实现的实例的名称。- 抽象startUpdates()#
开始以规律间隔发射更新。每当有新的卫星信息可用时,将会提供更新。
如果无法检索卫星信息或发生其他超时情况,
satellitesInViewUpdated()
和satellitesInUseUpdated()
信号可能发出,参数列表为空。注意
从 Qt6 开始,此方法在启动更新前总是将最后一个错误重置为
NoError
。- 抽象stopUpdates()#
停止定期发送更新。
- updateInterval()#
- 返回类型:
int
另请参阅
属性
updateIntervalᅟ
的获取器。