mysql - 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
解决方案
查看 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 版本。
推荐阅读
- sharepoint - 在 Azure 逻辑应用中的表单库(非列表)上获取 SharePoint 视图结果
- hana - 从 SAP HANA XS 应用程序获取 Windows 操作系统用户
- laravel - Laravel Lumen 7 广播事件与推送器不工作
- pyspark - Pyspark:如何建立停止在0的列(包含负值和正值)的总和
- function - 如何在 kotlin 的内部函数中从顶级函数返回?
- c# - 在“代码隐藏”中将 WPF ListView 列居中
- python - Python:条件表达式中的替换表达式
- java - 注入一个填充在不同类中的bean
- ios - Firebase 存储拒绝图像删除请求:错误域=FIRStorageErrorDomain 代码=-13021“用户没有访问权限”
- java - 用于简单访问的 JPA JOIN