计算 GPS 经纬度 两点间 距离 JAVA 代码
2012-04-28 10:14
661 查看
原文转自:http://blog.csdn.net/xjanker2/article/details/5404487
测试:
public class FCDTools { public final static double PI = 3.14159265354; private final static double D2R = 0.017453 ; private final static double a2 = 6378137.0; private final static double e2 = 0.006739496742337; public static double Distance(FCD_Point pt1, FCD_Point pt2) { if(pt1.lng == pt2.lng && pt1.lat == pt2.lat ) { return 0.0; } else { double fdLambda =(pt1.lng - pt2.lng) * D2R; double fdPhi = (pt1.lat - pt2.lat) * D2R; double fPhimean = ((pt1.lat + pt2.lat) / 2.0) * D2R; double fTemp = 1 - e2 * (Math.pow (Math.sin(fPhimean),2)); double fRho = (a2 * (1 - e2)) / Math.pow (fTemp, 1.5); double fNu = a2 / (Math.sqrt(1 - e2 * (Math.sin(fPhimean) * Math.sin(fPhimean)))); double fz = Math.sqrt (Math.pow(Math.sin(fdPhi / 2.0), 2) + Math.cos(pt2.lat * D2R) * Math.cos( pt1.lat*D2R ) * Math.pow( Math.sin(fdLambda / 2.0),2)); fz = 2 * Math.asin(fz); double fAlpha = Math.cos(pt2.lat * D2R) * Math.sin(fdLambda) * 1 / Math.sin(fz); fAlpha = Math.asin (fAlpha); double fR = (fRho * fNu) / ((fRho * Math.pow( Math.sin(fAlpha),2)) + (fNu * Math.pow( Math.cos(fAlpha),2))); return fz * fR; } } }
测试:
System.out.println(FCDTools.Distance(new FCD_Point(117.107277,31.980298), new FCD_Point(117.524757, 31.888227))); // 输出40.7公里
相关文章推荐
- java根据GPS经纬度坐标计算两点的距离算法
- JAVA 根据经纬度计算地球上任意两点距离GPS
- mySQL函数根据经纬度计算两点距离 复制代码
- java-经纬度有关的计算(半径内的经纬度范围和两点间距离)
- Gps如何根据两点(经纬度)计算直线距离
- JAVA 计算地球上任意两点(经纬度)距离
- JAVA 计算地球上任意两点(经纬度)距离
- gps 经纬度两点距离的计算方法
- 根据经纬度计算地球上两点之间的距离js实现代码
- java 根据经纬度 坐标 计算两点之间的距离
- JAVA基础(31) Java代码计算两个经纬度之间的距离
- JAVA 计算地球上任意两点(经纬度)距离
- 根据两点经纬度计算精确距离,结果和百度地图测距一样——java实现
- 根据两点经纬度计算距离 附C#和PHP代码
- 如何通过经纬度粗略计算地球两点之间的距离?直接上代码
- 【JAVA】两点经纬度直线距离的计算
- 根据经纬度计算两点之间距离的Obcective-C代码
- Java 根据经纬度计算两点之间的距离
- JAVA计算地球上任意两点(经纬度)距离
- JAVA 计算地球上任意两点(经纬度)距离