# F.13.地球距离
F.13.1.基于立方体的地球距离F.13.2.基于点的地球距离
这个地球距离
该模块提供了两种不同的方法来计算地球表面的大圆距离。第一个描述取决于立方体
单元第二个是基于内置的指向
数据类型,使用经度和纬度作为坐标。
在这个模块中,地球被假定为完美的球形。(如果这对你来说太不准确,你可能想看看波斯吉斯 (opens new window)项目。)
这个立方体
必须在安装前安装模块地球距离
可以安装(尽管您可以使用大量
选择创建扩展
在一个命令中安装这两个组件)。
# 小心
强烈建议地球距离
和立方体
安装在同一架构中,并且该架构的创建权限尚未授予且将不会授予任何不受信任的用户。否则,安装时存在安全隐患,如果地球距离
的架构包含恶意用户定义的对象。此外,当使用地球距离
安装后,整个搜索路径应仅包含受信任的架构。
# F.13.1.基于立方体的地球距离
数据存储在立方体中,立方体是点(两个角相同),使用3个坐标表示距地球中心的x、y和z距离。域名世界
结束立方体
它包括约束检查,以确保该值符合这些限制,并合理地接近地球的实际表面。
地球的半径是从地球()
作用它以米为单位。但是通过改变这一个函数,你可以改变模块,使用其他单位,或者使用你认为更合适的半径的不同值。
这个软件包也适用于天文数据库。天文学家可能想要改变地球()
返回半径为180/pi()
所以距离以度为单位。
提供了支持输入纬度和经度(以度为单位)、支持输出纬度和经度、计算两点之间的大圆距离以及轻松指定可用于索引搜索的边界框的功能。
提供的功能如所示表F.5.
表F.5.基于立方体的地距函数
# F.13.2.基于点的地球距离
模块的第二部分依赖于将地球位置表示为类型值指向
,其中第一个分量以度表示经度,第二个分量以度表示纬度。点被视为(经度、纬度),反之亦然,因为经度更接近于x轴的直观概念,而纬度更接近于y轴。
提供了一个操作员,如所示表F.6.
表F.6.基于点的地球距离操作符
操作人员 描述 |
---|
指向 <@> 指向 → 浮动8 计算地球表面两点之间的距离(以法定英里为单位)。 |
请注意,与立方体
-基于模块的一部分,单元在此处硬连线:更改地球()
函数不会影响此运算符的结果。
经度/纬度表示法的一个缺点是,需要注意极点附近和经度+/-180度附近的边缘条件。这个立方体
-基于对象的表示避免了这些不连续性。