本文主要是介绍java计算里程_Java通过算法计算当前位置附近几公里经纬度-Fun言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近做项目,经常要基于当前位置查找附近的人或店铺,之前写过一种关于数据库的查询方式,但是感觉数据上几百万条后查询速度很慢,所以研究了下算法,把当前位置的几公里内的外接正方形的经纬度求出来,如下图所示,然后再对数据库进行范围搜索即可,加上BTREE索引就能实现很快的查询了,下面把源码贴一下。
Java源码/**
* 附近选择
* @param longitude 经度
* @param latitude 纬度
* @param distance 搜索范围
* @return 经纬度范围
*/
public static Map findNeighDrugstore(double longitude,double latitude, double distance) {
double minlat = 0;
double maxlat = 0;
double minlng = 0;
double maxlng = 0;
// 先计算查询点的经纬度范围
double r = 6371;// 地球半径千米
double dis = distance;// 距离(单位:千米)
double dlng = 2 * Math.asin(Math.sin(dis / (2 * r))
这篇关于java计算里程_Java通过算法计算当前位置附近几公里经纬度-Fun言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!