我试图通过mysql确定一个给定的点是否在一个多边形内。我设置了一个名为“市政当局”的表,其中包含以下列:
| column | type |
|----------|---------|
| id | int |
| name | varchar |
| location | polygon |
我已经导入了一堆行,现在我正试图找到一个给定点在多边形中的行。我正在使用此查询:
SELECT * FROM municipalities
WHERE st_contains(
location,
ST_GEOMFROMTEXT('POINT(50.849243 5.690800)')
);
不幸的是,这会导致一个错误:“提供给函数stu的gis数据无效。”。
我完全不明白为什么我会犯这个错误。我开始认为location列可能包含错误的数据,但我不确定如何检查它。
有人能提供一些关于为什么这个查询失败的见解吗?
注意:我使用的是mysql 5.7.22
1条答案
按热度按时间htzpubme1#
您可能需要指定点的epsg。
确保它在位置数据epsg的同一epsg中。