如何检查postgis中的两个点是否在同一条线上
how to check if two points are on the same line in postgis
我已经提取了所有路口的几何形状,我想找到所有的连接(比如路口一连接到路口二、三、四、五)。我正在考虑通过检查两个交点(点)是否在同一个 LineString 上来实现这一点。有谁知道这是否是一个好方法?是否有任何函数可以调用来检查两点是否在同一条线上?谢谢
如果两个点(或任意数量的点)在多点中
可以使用 ST_Contains(Linestring, Multipoint) 这将 return true
if and only if no points of B lie in the exterior of A,
and at least one point of the interior of B lies in the
interior of A.
http://postgis.net/docs/manual-2.1/ST_Contains.html
你需要先把你的对收集成多点,这
如果你想测试所有可能的成对集,将是与 n^2 成比例的多个多点,这可能是
令人望而却步。在那种情况下,我会生成一个 table 匹配
指向包含它们的每个线串,然后将其聚合
table 按线串分组。
另请参阅 http://postgis.net/docs/manual-2.1/ST_Relate.html 了解更多信息
对象之间空间关系的一般测试。
我已经提取了所有路口的几何形状,我想找到所有的连接(比如路口一连接到路口二、三、四、五)。我正在考虑通过检查两个交点(点)是否在同一个 LineString 上来实现这一点。有谁知道这是否是一个好方法?是否有任何函数可以调用来检查两点是否在同一条线上?谢谢
如果两个点(或任意数量的点)在多点中 可以使用 ST_Contains(Linestring, Multipoint) 这将 return true
if and only if no points of B lie in the exterior of A, and at least one point of the interior of B lies in the interior of A.
http://postgis.net/docs/manual-2.1/ST_Contains.html
你需要先把你的对收集成多点,这 如果你想测试所有可能的成对集,将是与 n^2 成比例的多个多点,这可能是 令人望而却步。在那种情况下,我会生成一个 table 匹配 指向包含它们的每个线串,然后将其聚合 table 按线串分组。
另请参阅 http://postgis.net/docs/manual-2.1/ST_Relate.html 了解更多信息 对象之间空间关系的一般测试。