Sql 计算50英里以外的点(北面,东北45%,西南45%)

Sql 计算50英里以外的点(北面,东北45%,西南45%),sql,postgresql,postgis,qgis,Sql,Postgresql,Postgis,Qgis,在PostGIS中,有没有一种方法可以计算出50英里外不同方向的另一个点 给定一个点(‘纽约’,-74.00,40.71),我如何计算以下几点 1) 50 miles directly North 2) 50 miles 45% North East 4) 50 miles directly East 3) 50 miles 45% South West 更新: 这似乎是解决办法 ST_Project('POINT(-74.00 40.71)'::geography, 80467.2, rad

在PostGIS中,有没有一种方法可以计算出50英里外不同方向的另一个点

给定一个点(‘纽约’,-74.00,40.71),我如何计算以下几点

1) 50 miles directly North
2) 50 miles 45% North East
4) 50 miles directly East
3) 50 miles 45% South West
更新: 这似乎是解决办法

ST_Project('POINT(-74.00 40.71)'::geography, 80467.2, radians(45.0))
但是,我需要引用数据库记录来执行此操作。不要硬编码。

尝试与a组合-将
弧度的值调整到所需的方位角

WITH j AS (
  SELECT poi::geography AS poi FROM t
)
SELECT 
  ST_AsText(ST_Project(j.poi, 80467.2, radians(90.0)),2),
  ST_AsText(ST_Project(j.poi, 80467.2, radians(45.0)),2),
  ST_AsText(ST_Project(j.poi, 80467.2, radians(180.0)),2),
  ST_AsText(ST_Project(j.poi, 80467.2, radians(135.0)),2),
  ST_AsText(ST_Project(j.poi, 80467.2, radians(270.0)),2),
  ST_AsText(ST_Project(j.poi, 80467.2, radians(225.0)),2),
  ST_AsText(ST_Project(j.poi, 80467.2, radians(360.0)),2),
  ST_AsText(ST_Project(j.poi, 80467.2, radians(315.0)),2)
FROM j;

      st_astext      |      st_astext      |    st_astext     |     st_astext      |      st_astext      |     st_astext      |    st_astext     |      st_astext      
---------------------+---------------------+------------------+--------------------+---------------------+--------------------+------------------+---------------------
 POINT(-73.05 40.71) | POINT(-73.32 41.22) | POINT(-74 39.99) | POINT(-73.33 40.2) | POINT(-74.95 40.71) | POINT(-74.67 40.2) | POINT(-74 41.43) | POINT(-74.68 41.22)
(1 Zeile)


注意:图像中的缓冲区(圆圈)仅用于说明。

我想对一个有趣的问题投赞成票,对没有表现出努力的问题投反对票。±0@Madness-这是最新的,我想复制一下。但如果我能解决它,这似乎是一个更好的解决方案。更多的投票,因为你的答案是惊人的!