JAVA实现 百度两点间的距离 getDistance
2016-10-24 16:46
204 查看
import java.awt.geom.Point2D; public class Demo { public static void main(String[] args) { Point2D.Double point1 = new Point2D.Double(106.486654,29.490295); Point2D.Double point2 = new Point2D.Double(106.581515,29.615467); System.out.println(getDistance(point1, point2)); } /** * JAVA实现 百度两点间的距离 LH * -结果与百度JsApi的getDistance一致 * @param point1 * @param point2 * @return */ public static double getDistance(Point2D.Double point1,Point2D.Double point2){ return Wv(point1, point2); } private static double Wv(Point2D.Double a,Point2D.Double b){ if(a==null || b==null){ return 0; } double a_lng = ew(a.x, -180, 180); double a_lat = lw(a.y, -74, 74); double b_lng = ew(b.x, -180, 180); double b_lat = lw(b.y, -74, 74); return Td(oi(a_lng), oi(b_lng), oi(a_lat), oi(b_lat)); } private static double oi(double a){ return Math.PI * a / 180; } private static double Td(double a,double b,double c,double d){ return 6370996.81 * Math.acos(Math.sin(c) * Math.sin(d) + Math.cos(c) * Math.cos(d) * Math.cos(b - a)); } private static double ew(double a,double b,double c){ if(a>c){ a -= c - b ; }else if(a<b){ a += c - b; } return a ; } private static double lw(double a,double b,double c){ a = max(a,b) ; a = min(a,c); return a; } private static double max(double a,double b){ if(a>b){ return a ; } return b ; } private static double min(double a,double c){ if(a>c){ return c ; } return a ; } }
相关文章推荐
- JAVA实现求GPS两点之间的距离
- java后台调用百度API计算两点驾车距离
- 根据经纬度求两点间距离实现源码(java)
- 根据经纬度求地球表面两点间距离的实现--JAVA
- java实现——2001计算两点间的距离
- [导入]根据经纬度求两点间距离实现源码(java)
- 根据经纬度求两点间距离实现源码(java)
- Java实现控制台输出两点间距离
- 根据两点经纬度计算距离和角度——java实现
- 迪杰斯特拉算法处理无向图中最短路径的(dijkstra)Java实现(指定两点,求最短距离及路径)
- 根据两点经纬度计算精确距离,结果和百度地图测距一样——java实现
- 根据两点经纬度计算距离和角度——java实现
- 百度面试题的java实现
- 1815. 计算两点间的距离(类实现)
- 根据两点经纬坐标计算两点间的距离[JAVA]
- java 根据两点经纬度来算距离
- 相对熵(relative entropy或 Kullback-Leibler divergence,KL距离)的java实现(一)
- 欧几里德距离java实现
- 利用JS实现的根据经纬度计算地球上两点之间的距离
- 利用JavaScript实现的根据经纬度计算地球上两点之间的距离