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