【发布时间】:2011-07-11 00:57:11
【问题描述】:
在 mysql 数据库中,我有地理区域表,其中每一行都有一个 id 和一组构成该区域的多边形顶点的坐标(纬度、经度)(可以是无限数量的顶点)和这样的标记:
id | poly_coords | marker
------|--------------------------------------|-------------
0 | x1,y1|x2,y2|x3,y3|x4,y4|x4,y4|x4,y4| | 0
---------------------------------------------|-------------
1 | x1,y1|x2,y2|x3,y3|x4,y4|x4,y4|x4,y4| | 0
---------------------------------------------|-------------
. . .
. . .
. . .
我想要做的是当给定一个特定的 X,Y 坐标时:
如果标记 == 0 我需要选择给定 X,Y 坐标将落在多边形内或 X,Y 坐标在多边形一定距离内的行。
如果标记 == 1 顶点是一条线上的点(即 poly=0 的区域),我需要选择 X、Y 坐标在该线一定距离内的行。
我不知道如何从这里开始。如何使用 MySql 查询来完成此操作?我应该使用其他方法结合多个查询来完成这项工作吗?
【问题讨论】:
-
正在重新规范一个选项?照原样,您将不得不解析每个坐标集并在可能的过程中进行一些数学运算。
-
@Randy:不确定你所说的重新规范化是什么意思?你能解释一下吗?
-
空间扩展也可能有用(标准化后):dev.mysql.com/doc/refman/5.1/en/spatial-extensions.html
标签: mysql sql geospatial spatial