MySQL Spatial Within函数会产生错误

时间:2012-07-20 09:23:01

标签: mysql spatial

我有一个区域表,其中包含AREA_ID列和AREA列,它是Polygon类型。

我正在运行以下查询,但我似乎无法让它工作:

SELECT AREA_ID, AsText(AREA) 
FROM networkmodel.sit_area 
WHERE Within(AREA, Polygon((
50.913424 -1.420527, 
50.915805 -1.391516, 
50.898053 -1.390142, 
50.895021 -1.428251, 
50.913424 -1.420527)))

此查询为我提供了“操作数应包含1列”错误。

如果我在坐标周围放置一组括号,我会在解析“错误”时找到“非法非几何”(50.913424 -1.420527)'值。我的坐标格式是否错误?

我从MySQL文档中了解到,Within函数没有正确实现,而是回到了MBR实现,但我现在只是测试它。我过去使用了Contains函数成功地通过使用Point作为第二个参数而不是多边形来以类似的方式返回记录,这应该是相反的。

根据文档我的理解是这个函数接受两个参数并检查第一个(在这种情况下我的区域列)是否属于给定的多边形。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我现在正常工作,而不是使用此功能,我必须将Polygon声明更改为:

GeomFromText('Polygon((50.913424 -1.420527, 50.915805 -1.391516, 50.898053 -1.390142, 50.895021 -1.428251, 50.913424 -1.420527))')