前言
现在很多App都需要附带着附近人列表功能,所以我在这里实现2个点之间的距离计算
经纬度的获取需要第三方来支持,高德地图、百度地图....
附近人功能具体的实现逻辑:
1.获取每个人的经纬度坐标,存库记录
2.通过SQL获取指定距离范围内的用户列表(文章的 “二、MySQL中通过经纬度,获取范围内的用户”)
3.通过获取到的用户列表,计算自己与用户之间度距离(文章的 “一、JAVA代码实现计算AB两点的直线距离”)
一、JAVA代码实现计算AB两点的直线距离
我的代码逻辑中,判断了小于1千米、小于100米、大于1千米的返参
但在这文章里没有体现,有需要的可以自己按需修改
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
public class DistanceUtil {
// 椭球的长半轴
private static double EARTH_RADIUS = 6378.137;
/**
* 计算弧度
*/
private static double rad(double d) {
return d * Math.PI / 180.0;
}
/**
* 通过经纬度计算AB两点间的距离
* A点经度:longitude1、A点纬度:latitude1、
* B点经度:longitude2、 B点纬度:latitude2

本文介绍了在Java中计算两个经纬度坐标点之间直线距离的方法,以及如何在MySQL中通过经纬度获取一定范围内用户的实现逻辑。首先,讲解了Java代码计算两点距离的逻辑,然后讨论了如何利用SQL查询获取指定范围内的用户记录。
最低0.47元/天 解锁文章
407





