我在网上搜索了几天,终于承认失败了。我找不到任何比 2011 年年中更新的关于使用 mysql 进行地理空间距离查询的文章。我已经梳理了 mysql 文档,用谷歌搜索了几个小时,在这里完成了标签搜索和文本搜索……什么都没有。
所以问题是:我需要在 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 本机DISTANCE()
函数的任何引用,但我无法想象在整整 2 年中没有对此做任何事情。我一定是瞎了眼……
提前感谢您的任何见解。