Mysql指向段距离查询

时间:2016-01-21 14:09:19

标签: mysql

您好我想查询Mysql DB 5.1版本。必须存在从给定点到DB内部两点定义的段的距离计算。 我有一个与距离算法非常相似的距离算法:

Shortest distance between a point and a line segment

这是JS,但可以作为一个例子:

function sqr(x) { return x * x }
function dist2(v, w) { return sqr(v.x - w.x) + sqr(v.y - w.y) }
function distToSegmentSquared(p, v, w) {
var l2 = dist2(v, w);
if (l2 == 0) return dist2(p, v);
var t = ((p.x - v.x) * (w.x - v.x) + (p.y - v.y) * (w.y - v.y)) / l2;
if (t < 0) return dist2(p, v);
if (t > 1) return dist2(p, w);
return dist2(p, { x: v.x + t * (w.x - v.x),
                y: v.y + t * (w.y - v.y) });
}
function distToSegment(p, v, w) { return Math.sqrt(distToSegmentSquared(p,      v, w)); }

数据库查询的想法如下:

SELECT
id, (
//should it calculate the distance here?
)
) AS distance
FROM markers
ORDER BY distance
LIMIT 0 , 20;

我应该申报手续吗?

非常感谢任何帮助。感谢

编辑: 数据结构:

Table markers:
id | x1 | y1 | x2 | y2            
----------------------
   |    |    |    |

0 个答案:

没有答案