【问题标题】:Perpendicular Projection of point onto line using GeoDjango使用 GeoDjango 将点垂直投影到线上
【发布时间】:2015-07-13 21:58:31
【问题描述】:

我有一个点 C 和一个线串 AB,两者都具有 SRID 4326。我想找到CB 的垂直投影,即点D

我目前有一个使用单位向量的垂直投影的 2D 实现。但它不会在世界地图上返回正确的点(因为它是 2D 的)。在这里找到:Perpendicular on a line segment from a given point

我已经想到了两种使用 PostGIS 的方法:

1) 创建一条从C 到点E 的线,其中CE 平行于AB。然后将CEC旋转90度,找到交点,应该是D

2)在这里找到类似于谷歌地图几何库的方位和距离方法(computeOffset方法:https://developers.google.com/maps/documentation/javascript/geometry

我将如何使用 GeoDjango 方法做到这一点。好像没有暴露ST_AZIMUTH或者ST_ROTATE

GeoDjango 中使用原始 SQL 似乎也是一种反模式。但在这种情况下,我似乎需要比GeoDjango API 允许的更精细的控制。

任何帮助将不胜感激。

【问题讨论】:

    标签: python gis postgis geodjango


    【解决方案1】:

    对于由PostGIS返回的点和LineString最近的点ST_ClosestPointhttp://postgis.net/docs/ST_ClosestPoint.html将是点到LineString的正交投影

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多