mysql之在 SQL 中快速搜索最接近的值

JustinYoung 阅读:1091 2023-08-24 23:31:47 评论:0

我在 SQLite 数据库中得到了带有高度的经纬度坐标。

一些示例数据:

latitude   longitude  altitude 
------------------------------ 
48.003333  11.0       652     
48.036667  11.000833  651 
48.280833  11.000833  533 

现在我想要一些 SQL 查询,它将给我最接近给定纬度/经度坐标的高度,例如

给定纬度/经度将为 48.023445/11.000733,因此最接近的是海拔 651,纬度/经度为 48.036667/11.000833。试图搜索很多论坛,但没有任何用处。到处都是关于一个变量或非常慢的查询的例子。我非常需要这个查询,并且看到了一些基于 UNIONS 的解决方案。我需要它很快,因为我将在这张表上进行大约 150 万次查询。我正在使用事务和索引。

请您参考如下方法:

为了您的目的(靠近搜索坐标的点),您最好尽量减少使用平面距离公式。

(lat-latitude)*(lat-latitude) + (long-longitude)*(long-longitude) 


标签:mysql
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

全民解析

全民解析

关注我们