地理坐标定位和计算距离
场景介绍
在SNS应用中通常会有"附近的人"、或者地图应用中搜寻目的地距离当前路程等场
景。此时我们就需要根据两点地理位置的经度和纬度计算出距离。
备注:通常智能手机只要用户同意软件使用定位功能,就都可以轻松的获取到用户当前所在地理坐标,因此前段可以轻松的将地理坐标传给后端,后端将其存储起来然后计算。可以存在redis缓存也可以存在mysql中。
实现方法
基于java自己实现
java code
public static double getDistance(Location location1, Location location2 ) {
//Location是一个类,包含经度和纬度两个属性
//参数location1表示地址1,location2表示地址2.
double radLat1 = Math.toRadians (location1. getLatitude());
double radLat2 = Math.toRadians (location1. getLatitude());
double a = radLat1 - radLat2;
double b = Math.toRadians (location1. getLongitude()) - Math.toRadians (location2. getLongitude());
double s = 2 * Math. asin(Math .sqrt(
Math.pow (Math. sin(a / 2), 2) + Math.cos (radLat1) * Ma