MySQL - 试图找到Polygon中的所有点

时间:2014-07-18 20:29:47

标签: mysql spatial

我试图从一个点表中查询所有点,即某个多边形内的所有点。我曾尝试使用st_contains(),但由于某种原因它只是不起作用。 为了简单起见,我制作了一张表,其中包含我使用过的点(1,1),(0,0),(100,100):

GeomFromText('Point(0 0)')

这是我的疑问:

SELECT id, astext(point) FROM points WHERE st_within(point,GeomFromText('Polygon(10 10, 10 -10, -10 -10, -10 10, 10 10)'))

我也找到this question,这让我有信心有一些我失踪的东西......

请告诉我,我做错了什么...... 谢谢:))

2 个答案:

答案 0 :(得分:0)

有两种方法可以确定一个点是否在多边形内(缠绕数或偶数奇数规则)。

  1. https://www.youtube.com/watch?v=AHs2Ugxo7-8
  2. http://en.wikipedia.org/wiki/Even%E2%80%93odd_rule
  3. 这取决于您希望如何处理多边形。

答案 1 :(得分:0)

显然,“多边形创建字符串”将使用至少2组括号非常重要,即使它是1行多边形。例如: 良好的多边形创作:

GeomFromText('Polygon((10 10,10 -10,-10 -10,10 10))')

BAD Polygon Creation:

GeomFromText('Polygon(10 10,10 -10,-10 -10,10 10)')