【发布时间】:2021-10-03 12:51:42
【问题描述】:
给定一个大地线段,例如从布鲁塞尔到莫斯科,以及一个大地线点,例如柏林,在 PostGIS 中可以如下表示
select geography 'Linestring(4.35 50.85,37.617222 55.755833)', geography 'Point(13.405 52.52)';
我需要找到线段上与给定点完全相同的子午线的点,即它们的方位角为 0 度。
知道如何获得这个吗?
例如,使用 PostGIS,我通过将柏林的经度与初始段的两个纬度中的最大值取值来创建从柏林到北方的段,并按如下方式计算这两个段的交点
select st_astext(st_intersection(geography 'Linestring(4.35 50.85,37.617222 55.755833)',
geography 'Linestring(13.405 52.52,13.405 55.755833)'))
st_astext
----------------------------------------------
POINT(13.407059592483968 53.163047143541235)
可以看出,经度不完全相同,方位也不为0。
with test(inter) as (
select st_intersection(geography 'Linestring(4.35 50.85,37.617222 55.755833)',
geography 'Linestring(13.405 52.52,13.405 55.755833)') )
SELECT degrees(bearing(geography 'Point(13.405 52.52)', inter)) from test;
degrees
---------------------
0.11002408958628832
使用传统公式计算方位(例如,https://gist.github.com/jeromer/2005586)
【问题讨论】:
标签: postgis latitude-longitude bearing