我试图从一个点表中查询所有点,即某个多边形内的所有点。我试图使用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组括号非常重要,即使它是1行多边形。例如:GOOD Polygon Creation:
GeomFromText('Polygon((10 10,10 -10,-10 -10,10 10))')
坏多边形创作:
GeomFromText('Polygon(10 10,10 -10,-10 -10,10 10)')