我有一个区域表,其中包含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作为第二个参数而不是多边形来以类似的方式返回记录,这应该是相反的。
根据文档我的理解是这个函数接受两个参数并检查第一个(在这种情况下我的区域列)是否属于给定的多边形。
感谢任何帮助。
答案 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))')