class QGeoCoordinate#

QGeoCoordinate 定义了地球表面的一个地理位置。 更多

概述#

属性#

方法#

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述#

QGeoCoordinate 由纬度、经度和可选的飞行高度定义。

使用 type() 方法来确定一个坐标是否是二维坐标(仅具有经纬度)或三维坐标(具有经纬度和高度)。使用 distanceTo()azimuthTo() 方法计算坐标之间的距离和方位角。

应使用 WGS84 基准数据指定坐标值。有关地理术语的更多信息,请参阅坐标和另一篇关于包括 WGS84 的大地测量系统的文章。

在此上下文中,方位角与基于真北的罗盘方位相当。

自 Qt 5.5 起此类为 Q_GADGET。它可以直接从 C++ 和 QML 使用直接用于

class CoordinateType#

定义坐标类型。

常量

描述

QGeoCoordinate.InvalidCoordinate

一个无效坐标。如果一个坐标的纬度或经度值无效,则该坐标无效。

QGeoCoordinate.Coordinate2D

具有有效纬度和经度值的坐标。

QGeoCoordinate.Coordinate3D

具有有效纬度、经度值,并且还有一个高度值的坐标。

class CoordinateFormat#

定义 toString() 可能的格式化选项。

常量

描述

QGeoCoordinate.Degrees

返回十进制度形式坐标的字符串表示。

QGeoCoordinate.DegreesWithHemisphere

返回十进制度形式坐标的字符串表示,使用“N”、“S”、“E”或“W”来表示坐标的半球。

QGeoCoordinate.DegreesMinutes

返回度分格式坐标的字符串表示。

QGeoCoordinate.DegreesMinutesWithHemisphere

返回度分格式坐标的字符串表示,使用“N”、“S”、“E”或“W”来表示坐标的半球。

QGeoCoordinate.DegreesMinutesSecond

返回度分秒格式坐标的字符串表示。

QGeoCoordinate.DegreesMinutesSecondsWithHemisphere

返回度分秒格式坐标的字符串表示,使用“N”、“S”、“E”或“W”来表示坐标的半球。

另请参阅

toString()

注意

当使用 from __feature__ import true_property 时可以直接使用属性,否则通过访问器函数使用。

property altitudeᅟ: float#

此属性持有此属性持有海平面以上米的高度。

如果没有设置海拔,则属性未定义(qQNaN())。

虽然此属性是在 Qt 5.5 中引入的,但相关的访问器函数自此类第一版起就存在。

访问函数
属性 isValid: bool#

此属性包含这个地理坐标的有效性。

只有当 经度纬度 属性都设置为有效值时,地理坐标才是有效的。

虽然此属性是在 Qt 5.5 中引入的,但相关的访问器函数自此类第一版起就存在。

访问函数
属性 latitude: float#

此属性包含此属性的纬度(十进制度)。

如果纬度未设置,该属性未定义(qQNaN())。正纬度表示北半球,负纬度表示南半球。设置纬度时,新值应采用 WGS84 数据格式。

为了有效,纬度必须在 -90 到 90(包含)之间。

虽然此属性是在 Qt 5.5 中引入的,但相关的访问器函数自此类第一版起就存在。

访问函数
属性 longitude: float#

此属性包含此属性的经度(十进制度)。

如果经度未设置,该属性未定义(qQNaN())。正经度表示东半球,负经度表示西半球。设置经度时,新值应采用 WGS84 数据格式。

为了有效,经度必须在 -180 到 180(包含)之间。

虽然此属性是在 Qt 5.5 中引入的,但相关的访问器函数自此类第一版起就存在。

访问函数
__init__(other)#
参数:

otherQGeoCoordinate

根据 other 的内容构建一个坐标。

__init__(latitude, longitude)
参数:
  • latitude – float

  • longitude – float

使用给定的 latitudelongitude 构建一个坐标。

如果纬度不在 -90 到 90(包含)之间,或者经度不在 -180 到 180(包含)之间,则不设置任何值,并且 type() 将是 InvalidCoordinate

另请参阅

isValid()

__init__(latitude, longitude, altitude)
参数:
  • latitude – float

  • longitude – float

  • altitude – float

根据给定的纬度 latitude、经度 longitude 和高度 altitude 构建一个坐标。

如果纬度不在 -90 到 90(包含)之间,或者经度不在 -180 到 180(包含)之间,则不设置任何值,并且 type() 将是 InvalidCoordinate

注意,altitude 排定了海平面以上的米数。

另请参阅

isValid()

__init__()

构建一个坐标。坐标在调用 setLatitude()setLongitude() 之前是无效的。

altitude()#
返回类型:

float

返回高于海平面的高度(米)。

如果未设置高度,返回值是未定义的。

另请参阅

setAltitude() type()

属性 altitude 的获取器。

atDistanceAndAzimuth(distance, azimuth[, distanceUp=0.0])#
参数:
  • distance – float

  • azimuth – float

  • distanceUp – float

返回类型:

QGeoCoordinate

返回从当前坐标沿大圆路径,以 azimuth (或航向) 方向行走 distance 米后到达的坐标。此计算假设地球是球形的。

distanceUp 添加到高度中。

如果此坐标无效,则返回无效坐标。

azimuthTo(other)#
参数:

otherQGeoCoordinate

返回类型:

float

返回从当前坐标到由 other 指定的坐标的方位角(或航向角),在此计算中不使用高度。

返回的航向是从起点到 other 沿两个坐标之间大圆的航向。此计算假设地球是球形的。

如果当前坐标或 other 的类型是 InvalidCoordinate ,则返回0。

distanceTo(other)#
参数:

otherQGeoCoordinate

返回类型:

float

返回从该坐标到由 other 指定坐标的距离(以米为单位)。计算时不使用海拔。

此计算返回两个坐标之间的大圆距离,假设地球在此计算中是球形的。

如果当前坐标或 other 的类型是 InvalidCoordinate ,则返回0。

isValid()#
返回类型:

bool

如果 longitudelatitude 有效,则返回 true

属性 isValidᅟ 的获取器。

latitude()#
返回类型:

float

返回纬度,以十进制度为单位。如果未设置纬度,返回值未定义。

正纬度表示北半球,负纬度表示南半球。

另请参阅

setLatitude() type()

属性 latitudeᅟ 的获取器。

longitude()#
返回类型:

float

返回经度,以十进制度为单位。如果未设置经度,返回值未定义。

正经度表示东半球,负经度表示西半球。

另请参阅

setLongitude() type()

属性 longitudeᅟ 的获取器。

__ne__(rhs)#
参数:

rhsQGeoCoordinate

返回类型:

bool

如果 lhs 坐标的纬度、经度或海拔与 rhs 坐标不匹配,则返回 true。否则返回 false

__eq__(rhs)#
参数:

rhsQGeoCoordinate

返回类型:

bool

如果 lhs 坐标的纬度、经度和海拔与 rhs 坐标相同,则返回 true。否则返回 false

如果纬度为 +/- 90 度,将忽略经度。

setAltitude(altitude)#
参数:

altitude – float

将海拔(海平面以上米数)设置为 altitude

另请参阅

altitude()

属性 altitude 的设置器。

setLatitude(latitude)#
参数:

latitude – float

将纬度(十进制度)设置为 latitude。该值应在 WGS84 基准下。

为了有效,纬度必须在 -90 到 90(包含)之间。

另请参阅

latitude()

属性 latitude 的设置器。

setLongitude(longitude)#
参数:

longitude – float

将经度(十进制度)设置为 longitude。该值应在 WGS84 基准下。

为了有效,经度必须在 -180 到 180(包含)之间。

另请参阅

longitude()

属性 longitude 的设置器。

swap(other)#
参数:

otherQGeoCoordinate

toString([format=QGeoCoordinate.CoordinateFormat.DegreesMinutesSecondsWithHemisphere])#
参数:

格式CoordinateFormat

返回类型:

字符串

返回指定 format 格式的此坐标的字符串表示。

例如,如果此坐标的纬度为 -27.46758,经度为 153.027892,海拔为 28.1,则根据 format 返回以下字符串:

format

返回的字符串

-27.46758°, 153.02789°, 28.1m

带半球标记的度

27.46758° S, 153.02789° E, 28.1m

度分

-27° 28.054′, 153° 1.673′, 28.1m

带半球标记的度分

27° 28.054′ S, 153° 1.673′ E, 28.1m

度分秒

-27° 28′ 3.2″, 153° 1′ 40.4″, 28.1m

带半球标记的度分秒

27° 28′ 3.2″ S, 153° 1′ 40.4″ E, 28.1m

如果没有设置海拔,则省略海拔字段。

如果坐标无效,则返回空字符串。

类型()#
返回类型:

坐标类型

返回此坐标的类型。