我有一个点C
和一个线串AB
,两者都有SRID 4326
。我想找到C
到B
的垂直投影,这将是点D
。
我目前使用单位向量对此垂直投影进行2D实现。但它不会在世界地图上返回正确的点(因为它是2D)。在此处找到:Perpendicular on a line segment from a given point
我想到了两种使用PostGIS的方法:
1)创建一条从C
到点E
的行,其中CE
与AB
平行。然后在CE
周围旋转C
90度并找到交点,该交点应为D
。
2)在此处找到与Google地图几何图库类似的方位和距离方法(computeOffset
方法:https://developers.google.com/maps/documentation/javascript/geometry
如何使用GeoDjango
方法执行此操作。它似乎没有公开ST_AZIMUTH
或ST_ROTATE
?
在GeoDjango
中使用原始SQL似乎也是一个反模式。但在这种情况下,我似乎需要比GeoDjango
API允许的更精细控制。
任何帮助都将不胜感激。
答案 0 :(得分:0)
对于LineString
PostGIS
http://postgis.net/docs/ST_ClosestPoint.html返回的点和ST_ClosestPoint
最近点的情况,将是LineString