我正在尝试通过MySQL确定给定点是否在多边形内。我用以下几列设置了一个名为“ municipalities”的表:
id int
name varchar
location polygon
我已经导入了一堆行,现在我正在尝试查找给定点在多边形内的行。我正在使用此查询:
SELECT * FROM municipalities
WHERE st_contains(
location,
ST_GEOMFROMTEXT('POINT(50.849243 5.690800)')
);
不幸的是,这导致错误:“提供给st_within函数的GIS数据无效。” 。
我完全迷失了为什么出现此错误。我开始认为位置列可能包含错误的数据,但是我不确定如何检查。
任何人都可以提供一些有关此查询失败原因的见解吗?
注意:我正在使用MySQL 5.7.22
答案 0 :(得分:0)
您可能需要指定点的EPSG。
ST_GeomFromText('POINT(45 90)', 4326);
确保将其与您的位置数据EPSG放在同一EPSG中。