名称

ST_方位角 — 返回两点之间线段的基于北方的方位角。

语法

float ST_方位角(geometry origin, geometry target);

float ST_方位角(geography origin, geography target);

描述

返回目标点相对于原点的方位角(以弧度为单位),如果两点重合,则返回 NULL。方位角角度是从正 Y 轴(几何)或北子午线(地理)引用的正顺时针角度:北 = 0;东北 = π/4;东 = π/2;东南 = 3π/4;南 = π;西南 5π/4;西 = 3π/2;西北 = 7π/4。

对于地理类型,方位角解被称为逆测地线问题

方位角是一个数学概念,定义为参考向量与一个点之间的角度,角度单位为弧度。可以使用 PostgreSQL 函数 degrees()将弧度中的结果值转换为度数。

方位角可以与ST_Translate结合使用,以沿其垂直轴移动对象。有关此实现,请参阅PostGIS wiki中的 upgis_lineshift() 函数。

可用性:1.1.0

增强:2.0.0 引入了对地理的支持。

增强:2.2.0 使用 GeographicLib 对椭球体进行测量,以提高准确性和鲁棒性。需要 PROJ >= 4.9.0 才能利用新功能。

示例

几何方位角(以度为单位)

SELECT degrees(ST_Azimuth( ST_Point(25, 45),  ST_Point(75, 100))) AS degA_B,
       degrees(ST_Azimuth( ST_Point(75, 100), ST_Point(25, 45) )) AS degB_A;

      dega_b       |     degb_a
------------------+------------------
 42.2736890060937 | 222.273689006094

蓝色:原点 Point(25,45);绿色:目标点 Point(75, 100);黄色:Y 轴或北;红色:方位角。

蓝色:原点 Point(75, 100);绿色:目标点 Point(25, 45);黄色:Y 轴或北;红色:方位角。

另请参见

ST_AngleST_PointST_TranslateST_ProjectPostgreSQL 数学函数