Answers:
平面轴承可以使用ST_Azimuth
以下公式计算:
SELECT ST_Azimuth(ST_MakePoint(1,2),
ST_MakePoint(3,4))/(2*pi())*360 as degAz,
ST_Azimuth(ST_MakePoint(3,4),
ST_MakePoint(1,2))/(2*pi())*360 As degAzrev
degaz degazrev
------ ---------
45 225
对于球形方位角(引用potgis-users组):
PostGIS方位角函数似乎使用了一个简单的反正切函数来确定方位角。如果将坐标转换为投影坐标系,然后运行查询,则结果将更接近FCC站点的结果。
这是到UTM Zone 31的快速转换:
select degrees(azimuth(
'POINT(634714.442133176 5802006.052402816)',
'POINT(634731.2410598891 5801981.648284801)'
));
产生的方位角为145.457858825445。UTM区域中心的点或更合适的投影将提供更好的结果。
这是我不得不处理此问题时选择的解决方案,主要是出于遗留原因(我有一个计算方位角的Python函数)。首先,我们需要找到一个函数来告诉我们两点之间的确切距离。引用postgis手册:
ST_distance_sphere(point,point)返回两个纬度/经度点之间的线性距离,以米为单位。使用球形地球,半径为6370986米。比distance_spheroid()快,但准确性较低。仅针对积分实施。
测量点之间的经度和纬度距离,然后使用该arctan
功能检索角度。
atan
吗?我的三角学有点朦胧...