earthdistance
模块提供两种不同的方法来计算地球表面的大圆距离。 第一种要介绍的依赖于cube
模块。第二种基于内建的point
数据类型,为座标使用精度和纬度。
在这个模块中,地球被假定为完美的球型(如果这对你不够精确,你可能希望去看看PostGIS项目)。
cube
模块必须在earthdistance
之前被安装。 (尽管你可以使用CREATE EXTENSION
的CASCADE
选项在一个命令中同时安装)。
强烈建议将 earthdistance
和cube
安装在同一模式中,并且该模式的 CREATE 特权尚未授予且不会授予任何不受信任的用户。 否则,如果earthdistance
的模式包含由敌对用户定义的对象,则存在安装时的安全隐患。 此外,在安装后使用earthdistance
的函数时,整个搜索路径应仅包含受信任的架构。
数据被存储在立方体中,立方体的点(所有的角都一样)使用 3 个座标表示到地球中心的 x、y 和 z 距离。提供了一个cube
之上的域earth
,这包括检查值符合这些限制并且合理地接近于地球的真实表面的约束。
地球的半径获得自earth()
函数。其单位是米。但是通过改变这一个函数你能够把该模块改为使用某些其他单位,或者使用一种你认为更合适的不同半径值。
这个包也有在天文数据库中的应用。天文学家可能想要改变earth()
来返回一个180/pi()
的半径,这样距离就会是度数。
函数也被提供来支持经纬度输入(以度数)、经纬度输出、计算两点间的大圆距离以及容易地指定一个可用于索引搜索的边界框。
所提供的函数在表 F.5中描述。
表 F.5. 基于立方体的地球距离函数
函数 描述 |
---|
返回假定的地球半径。 |
将地球表面两点间的普通直线(切线)距离转换为它们之间的大圆距离。 |
将地球表面两点间的大圆距离转换为它们之间的普通直线(切线)距离。 |
返回以度数给定的纬度(参数 1)和经度(参数 2)的点在地球表面上的位置。 |
返回地球表面上一个点的纬度(以度数形式)。 |
返回地球表面上的点的经度(以度数形式)。 |
返回地球表面上两个点之间的大圆距离。 |
为一个位置的给定大圆距离范围内的点使用 |
这个模块的第二部分依赖于将地球位置表示为类型point
的值,其中第一部分被用来表示经度数,第二部分被用来表示纬度数。点被取做 (longitude, latitude) 并且不能反过来,因为经度更接近直观上的 x 轴,而纬度则接近 y 轴。
如表 F.6所示,这一部分只提供了一个单一操作符。
表 F.6. 基于点的地球距离操作符
操作符 描述 |
---|
计算地球表面上两个点之间以法定英里计算的距离。 |
注意和这个模块的基于cube
的部分不同,这里的单位是被硬编码的:改变earth()
函数将不会影响这个操作符的结果。
经度/纬度表示的一个缺点是你需要小心靠近两极和靠近经度正负 180 度处的边界情况。基于cube
的表示可以避免这些不连续性。
F.21.1. 定义F.21.2. 操作符和函数F.21.3. 索引F.21.4. 例子F.21.5. 转换这个模块实现了一种数据类型ltree用于表示存储在一个层...
SQL FORMAT() 函数FORMAT() 函数 FORMAT() 函数用于对字段的显示进行格式化。 SQL FORMAT() 语法SELECT FORMAT(column_name,...
SQL LAST() 函数LAST() 函数 LAST() 函数返回指定的列中最后一个记录的值。 SQL LAST() 语法SELECT LAST(column_name) FROM ...
MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管...
在本章中,我们将研究WordPress中的Discussion settings。 WordPress讨论设置可以定义为博客和访问者之间的交互。 这些设置由管...
在本章中,我们将研究如何在WordPress中删除帖子。以下是在WordPress中删除帖子的步骤。步骤(1)- 点击WordPress中的Posts → All...
基本介绍Go语言中的goroutine虽然相对于系统线程来说比较轻量级(初始栈大小仅2KB),(并且支持动态扩容),而正常采用java...
基本介绍gutil组件封装了一些开发中常用的工具方法。使用方式:import "github.com/gogf/gf/v2/util/gutil"接口文档:https:...