名称

ST_方位角 — 返回两点之间连线的以北为基准的方位角。

概要

float ST_方位角(geometry 起始点, geometry 目标点);

float ST_方位角(geography 起始点, geography 目标点);

描述

返回从起始点到目标点的方位角,以弧度为单位,如果两点重合则返回 NULL。 方位角是一个正的顺时针角度,参考于正 Y 轴(geometry)或北子午线(geography):北 = 0;东北 = π/4;东 = π/2;东南 = 3π/4;南 = π;西南 5π/4;西 = 3π/2;西北 = 7π/4。

对于 geography 类型,方位角解决方案被称为 逆大地测量问题

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

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

可用性: 1.1.0

增强功能: 2.0.0 引入了对 geography 的支持。

增强功能: 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 轴或北方向;红色:方位角。