【问题标题】:Find the right polygon contains specific Point找到包含特定点的正确多边形
【发布时间】:2015-11-26 20:32:57
【问题描述】:

我有一个超出我知识范围的专家情况。 我有一个名为 geom 的多边形表和列,其中包含数百万个多边形数据类型的多边形坐标。当我发送纬度,语言时,我想选择包含这些坐标的正确多边形。我查找了很多答案,但没有找到正确的结果。我的数据库版本是 5.6。希望各位高手帮忙解决这个问题。

这是我名为 geom 的专栏的结果之一,

'POLYGON((32.832677661456 39.604395901764,32.835512741784 39.604451520825,32.835457628151 39.604632934478,32.83542524568 39.604933725003,32.835590964324 39.605704952638,32.834519250891 39.605843434172,32.834339561944 39.605868865521,32.833763769865 39.605950014069,32.833486350914 39.606015654716,32.833173277993 39.606086197256,32.832114796112 39.606214593239,32.832301872536 39.605240473323,32.832677661456 39.604395901764))',0

当我用这个点 32.832677661456 39.604395901764 搜索时,我需要得到这个多边形

问候

【问题讨论】:

  • 您能否提供一些多边形表中的示例记录,以确保我们了解多边形在您的 MySql 表中是如何编码的?
  • 一个 sqlfiddle 看起来有点像Like This Fiddle,但实际上是一个有几行的。创建左侧部分。并发布网址。然后我们要么做正确的部分并将其作为 url 发送回来,要么在此处发布,或两者兼而有之。

标签: mysql gis


【解决方案1】:

这会返回一个结果:

select AsText(polygon.geom)
from   polygon
where  Contains(polygon.geom, 
           PointFromText('POINT(32.832677661456 39.604395901764)'));

查看这个fiddle,它有两个表,polygon(带有您提供的一个值)和location 带有两条记录,其中一条带有您提供的点,另一条带有点外给定的多边形。

小提琴SQL发现第一个点在多边形内:

select AsText(polygon.geom), AsText(location.geom)
from   polygon, location
where  Contains(polygon.geom, location.geom);

【讨论】:

  • 不客气,事实上我在回答你的问题时学到了很多东西。
猜你喜欢
  • 2013-12-08
  • 2017-03-12
  • 2014-06-02
  • 2023-03-21
  • 2023-03-22
  • 2020-03-11
  • 1970-01-01
  • 2010-10-24
  • 1970-01-01
相关资源
最近更新 更多