坐标 QML 值类型
坐标类型表示并存储地理位置。更多信息...
导入声明 | import QtPositioning |
详细描述
此类型是 QGeoCoordinate 的 QML 表示,并以纬度、经度和海拔属性的形式表示地理位置。纬度属性指定赤道上方和下方的十进制度数。纬度为正值表示北半球,为负值表示南半球。经度属性指定东西方向的十进制度数。经度为正值表示东半球,为负值表示西半球。海拔属性指定海平面以上的米数。这些属性一起指定了地球表面或附近的三维位置。
可以使用 isValid 属性来检查坐标是否有效。如果一个坐标具有有效的纬度和经度,则认为它是有效的。有效的高度不是必需的。纬度必须在 -90 到 90(含)之间,经度必须在 -180 到 180(含)之间。
coordinate 类型在 Qt 位置模块的许多其他类型中被使用,用于指定地图上对象的位置、设备的当前位置以及许多其他任务。它们还提供了一些重要的实用方法,使得一些复杂的计算变得简单易用,例如 atDistanceAndAzimuth()。
精度
存储在坐标类型中的纬度、经度和海拔属性表示为双精度,提供大约 16 位十进制精度——足以指定微米。坐标的方法(如 azimuthTo() 和 distanceTo)进行的计算也使用双精度表示所有中间值,但它们球形地球模型固有的不准确度决定了输出的错误量。
示例用法
使用类型为 var 的属性来存储坐标。要创建坐标,请使用以下描述中的一种方法。在任何情况下,指定 altitude 属性都是可选的。
要创建坐标值,请使用 QtPositioning.coordinate() 函数
import QtPositioning Location { coordinate: QtPositioning.coordinate(-27.5, 153.1) }
或使用单独的 latitude、longitude 和 altitude 组件
Location { coordinate { latitude: -27.5 longitude: 153.1 } }
当与C++集成时,请注意,从C++传到QML的任何QGeoCoordinate值将自动转换为坐标
值,反之亦然。
属性
纬度
real latitude
此属性包含地理位置的纬度值(十进制度)。正值纬度表示北半球,负值纬度表示南半球。如果该属性尚未设置,其默认值是NaN。
有关详细信息,请参阅QGeoCoordinate::latitude属性
经度
real longitude
此属性包含地理位置的经度值(十进制度)。正值经度表示东半球,负值经度表示西半球。如果该属性未设置,其默认值是NaN。
有关详细信息,请参阅QGeoCoordinate::longitude属性
海拔
real altitude
该属性包含海拔值(海平面以上米)。如果该属性未设置,其默认值是NaN。
有关详细信息,请参阅QGeoCoordinate::altitude属性
isValid
bool isValid
该属性包含坐标的有效性。如果坐标设置为有效的纬度和经度(海拔不是必需的),则认为是有效的。
纬度必须在-90到90(包含)之间才能认为是有效的,经度必须在-180到180(包含)之间才能认为是有效的。
这是一个只读属性。
方法
distanceTo()
real distanceTo(coordinate other)
返回从当前坐标到由other指定的坐标的距离(以米为单位)。海拔在计算中不被使用。
此计算返回两个坐标之间的大圆距离,假设地球在此计算中是球形的。
azimuthTo()
real azimuth(coordinate other)
返回从当前坐标到由other指定的坐标的方位角(或航向角),以度为单位。海拔在计算中不被使用。
在此次计算中,假设地球是球形的。
atDistanceAndAzimuth()
coordinate atDistanceAndAzimuth(real distance, real azimuth)
返回一个大圆上从当前坐标出发,按照azimuth度行进distance米后到达的坐标。
在此次计算中,假设地球是球形的。
© 2024 Qt公司有限公司。本文件中包含的文档贡献是各自所有者的版权。本文件中提供的文档是根据免费软件基金会发布的GNU自由文档许可证版本1.3的条款许可的。Qt及其相应的标志是芬兰和/或其他国家的Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。