【问题标题】:MySQL - Trying to find all points inside a PolygonMySQL - 试图找到多边形内的所有点
【发布时间】:2017-12-25 21:15:09
【问题描述】:

我正在尝试从点表中查询所有点,即某个多边形内的所有点。我曾尝试使用 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,这让我确信我缺少一些非常重要的东西......

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

【问题讨论】:

  • 已经在gis上提问并回答了。
  • 嗨@hd1,谢谢你的回答。我已经看到了这个问题,但我的代码仍然有问题,我无法弄清楚是什么......

标签: mysql spatial


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    糟糕的多边形创建:

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

    【讨论】:

      猜你喜欢
      • 2015-03-06
      • 2010-12-24
      • 2018-02-28
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      相关资源
      最近更新 更多