提问人:kael 提问时间:3/19/2013 更新时间:3/19/2013 访问量:145
MySQL中地理距离查询的现代标准过程是什么?
What's the modern standard procedure for geodistance queries in MySQL?
问:
我在网上搜索了好几天,终于承认失败了。我找不到任何关于使用 mysql 的地理空间距离查询的文章,这些文章比 2011 年年中更新。我已经梳理了 mysql 文档,用谷歌搜索了几个小时,在 SO 中完成了标签搜索和文本搜索......无。
所以问题来了:我需要对 mysql 数据库进行一个非常普通的基于半径的查询。我宁愿使用尽可能少的附加组件,但我会尽我所能。下面是一个示例:
CREATE TABLE `test_locations` (
`location_id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
`locaiton_name` VARCHAR(32) NOT NULL,
`latlng` POINT NOT NULL
);
SELECT `location_name`, X(`latlng`) as `lat`, Y(`latlng`) as `lng`
FROM `test_locations`
WHERE DISTANCE(PointFromText('POINT(41.78231 -88.712151)'), latlng) < 15;
是的,这在某种程度上是伪代码,因为我还没有看到任何对(工作)mysql 本机函数的引用,但我无法想象在整整 2 年的时间里没有做任何事情。我一定是瞎了......DISTANCE()
提前感谢您的任何见解。
答:
1赞
Paul Gregory
3/19/2013
#1
我想更广泛的问题是,对于一个给定的技术问题,在其他人解决问题之前,人们可以期望在山洞里躲多久?
虽然还没有和我们在一起,但还没有必要休眠 - 尝试使用空间点类型在MySQL中存储Lat Lng值中的“更多后续”下的代码DISTANCE
具有讽刺意味的是,问题实际上是“这是否是面向未来的,或者我将来需要更新它”,而您的问题是“为什么最近没有人发布更新的代码?
评论
0赞
kael
3/19/2013
“更多后续”部分确实是我一直在寻找的。我第一次看到那篇帖子时错过了它。正如我在对原始问题的评论中所说,“现代”意味着一种解决方案,它利用内置优化来完成我认为至少越来越普遍的任务。似乎就是这样。
评论