首页 > 解决方案 > Mysql 在多边形中查找点。

问题描述

我想从多边形中存在点( 25.10785 55.18114 )的表位置中选择 ID。

我尝试了所有可能的方法,而它对所有内容都返回 null。

Polygon((25.11031 55.18408,25.11109 55.18459,25.11288 55.18811,25.11653 55.19301,25.12197 55.20176, 25.1034 55.23103, 25.09471 55.24247, 25.0826 55.24944, 25.05652 55.24897, 25.05526 55.23672, 25.05306 55.22412, 25.06665 55.22071, 25.07212 55.21617, 25.07821 55.20957, 25.09016 55.19002, 25.09583 55.18403 , 25.1046 55.17734, 25.10785 55.18114,25.11031 55.18408))

这就是多边形的样子。

如果多边形中存在一个点,我希望 mysql 返回 ID

标签: mysqlpolygon

解决方案


查看 mysql 函数 Containt 或 ST_Contains。ST_Contains(g1, g2) 返回 1 或 0 以指示 g1 是否完全包含 g2。

在您的示例中,您可以执行以下操作:

SELECT id FROM your_table WHERE CONTAINS(your_polygon, PointFromText(POINT(25.10785 55.18114))

确保检查您使用的 mysql 版本。


推荐阅读