我有一个mySQL空间函数的问题。我的目标是找出一个LINESTRING对象是否通过一个POLYGON对象。为了确定我试图用两个LINESTRING对象来确定它们是否交叉。MySQL LineString与Linestring或Polygon的交集
SET @ls='LINESTRING (0 0, 1 1, 2 2, 3 3)'; -- original linestring
SET @lp='LINESTRING (0 1, 1 2, 2 3, 3 4)'; -- parallel linestring
SET @lx='LINESTRING (0 3, 1 2, 2 1, 3 0)'; -- crossed linestring
我已经试过多种功能,达到我的目标:
SELECT crosses(GeomFromText(@ls), GeomFromText(@lx)); -- crossing linestrings
returns 0;
SELECT intersects(GeomFromText(@ls), GeomFromText(@lp)); -- parallel linestrings
returns 1;
SELECT overlaps(GeomFromText(@ls), GeomFromText(@lp)); -- parallel linestrings
returns 1;
我明白,这是边界比较或某事的问题,但有一个方法(或函数,或简单解决方案)如何实现我的目标?其他的可能性是检查LINESTRING中的POINT是否在POLYGON中,但我想知道是否有另一种方法来做到这一点?在MySQL Great Circle intersection (do two roads cross?)提供
解决方案不帮我很遗憾..
是的,幸运的是,新版本支持ST_前缀。我已经修好了一段时间,但忘记了这里的线程。 :) 感谢您的答复。 – Tiit 2013-06-17 08:46:44