0

我有一个区域表,其中包含一个 AREA_ID 列和一个多边形类型的 AREA 列。

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

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 作为第二个参数而不是多边形来以类似的方式返回记录,这应该与此相反。

我从文档中了解到,此函数采用两个参数并检查第一个参数(在本例中为我的区域列)是否属于给定的多边形。

感谢任何帮助。

4

1 回答 1

0

是的,我现在让它工作,而不是使用这个函数,我不得不将 Polygon 声明更改为:

GeomFromText('Polygon((50.913424 -1.420527, 50.915805 -1.391516, 50.898053 -1.390142, 50.895021 -1.428251, 50.913424 -1.420527))')
于 2012-07-20T10:09:15.700 回答