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

问题描述 投票:0回答:2

我试图从一个点表中查询所有点,即某个多边形内的所有点。我试图使用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,这让我有信心有一些我很想念的东西......

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

mysql spatial
2个回答
0
投票

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

  1. https://www.youtube.com/watch?v=AHs2Ugxo7-8
  2. http://en.wikipedia.org/wiki/Even%E2%80%93odd_rule

这取决于您希望如何处理多边形。


0
投票

显然,“多边形创建字符串”将使用至少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)')
© www.soinside.com 2019 - 2024. All rights reserved.