微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL纬度/经度半径搜索

如何解决MySQL纬度/经度半径搜索

| 我有一张带邮政编码(int)和位置(point)的表。我正在寻找MySQL查询函数。这是日期的示例。我想返回100英里。
37922|POINT(35.85802 -84.11938)
一个简单的查询可以实现这一目标吗? 好吧,我有这个
select x(Location),Y(Location) FROM zipcodes
这将给我两点,但是我如何找出x / y距离之内的内容呢?     

解决方法

        用于执行此操作的查询不是很困难,但是很慢。您可能要使用Haversine公式。 http://en.wikipedia.org/wiki/Haversine_formula 将其转换为SQL并不是很困难,但是随着数据集的增加,计算表中每个记录的距离会变得很昂贵。 通过使用geohash函数限制候选记录的位置,可以大大减少工作量。如果准确性很重要,则可以将Haversine公式应用于geohash区域内的记录。 如果mysql人员从未完成过他们的GIS和Spatial扩展,请考虑使用ElasticSearch或MongoDB。 这里有一个非常完整的讨论: 计算地理邻近度的公式     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。