【发布时间】:2013-04-20 01:53:03
【问题描述】:
我正在使用以下语句从名为“纬度”和“经度”的两个 varChar 格式列写入名为“坐标”的点格式列。
"UPDATE table_name SET coordinate = PointFromText(CONCAT('POINT(',table_name.longitude,' ',table_name.lattitude,')'))"
我尝试使用以下语句对坐标列进行空间查询。
SELECT id , coordinate FROM table_name WHERE MBRContains(GeomFromText('Polygon(-126.728566 49.226434, -123.652395 23.586457,-56.679738 23.908252,-53.076223 55.243002)'), coordinate)
根据这个tool,我的查询中的多边形覆盖了整个美国。我知道我的表中有一些点落在美国,但我仍然没有得到任何结果(注意我得到的是空结果而不是错误)。关于我做错了什么有什么想法吗?
更新。以下是根据以下建议执行我的查询的更新尝试。
SET @g1 = GeomFromText('Polygon((23.586457 -123.652395,23.908252 -56.679738,55.243002 -53.076223,55.243002 -53.076223,23.586457 -123.652395))');
SELECT id , coordinate FROM table_name WHERE MBRContains(@g1, coordinate)
【问题讨论】:
-
你不需要关闭多边形吗?
-
我尝试在 and 处再次添加第一个坐标,结果仍然相同。
-
您是否尝试将用于测试的简单数据设置为 table_name,例如此处使用的数据:dev.mysql.com/doc/refman/4.1/en/relations-on-geometry-mbr.html。检查一切是否按预期工作?
标签: mysql polygon spatial-query