本文主要是介绍【LBS】移动互联网基于LBS地理位置应用开发必备,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧! 原文:【LBS】移动互联网基于LBS地理位置应用开发必备 源代码下载地址:http://www.zuidaima.com/share/1694743146056704.htm 功能:计算两个点(经纬度坐标)之间的距离 使用示例: double distance = LatLng.distance(113.926496000000000, 22.538393000000000, 114.23, 22.23); 01 package com.haohui.util; 02 03 /** 04 * 计算两个经纬度之间的距离的工具类 05 * 06 * Feb 13, 2014 07 * @author ZhihaoChen 08 */ 09 public class LatLng { 10 private static double lngPerMeter = 1.E-005D; 11 12 public double getLat(double _curLat, int _radius) { 13 return _radius * lngPerMeter; 14 } 15 16 public double getLng(int _radius) { 17 return _radius * lngPerMeter; 18 } 19 20 /** 21 * 计算两个经纬度之间的距离 22 * 23 * @param _lng1 24 * @param _lat1 25 * @param _lng2 26 * @param _lat2 27 * @return 28 */ 29 public static double distance(double _lng1, double _lat1, double _lng2, 30 double _lat2) { 31 if ((_lng1 == 0.0D) || (_lat1 == 0.0D) || (_lng2 == 0.0D) 32 || (_lat2 == 0.0D)) { 33 return 0.0D; 34 } 35 double rad_lat1 = Rad(_lat1); 36 double rad_lat2 = Rad(_lat2); 37 double a = rad_lat1 - rad_lat2; 38 double b = Rad(_lng1) - Rad(_lng2); 39 double s = 2.0D * Math.asin(Math.sqrt(Math 40 .pow(Math.sin(a / 2.0D), 2.0D) 41 + Math.cos(rad_lat1) 42 * Math.cos(rad_lat2) 43 * Math.pow(Math.sin(b / 2.0D), 2.0D))); 44 s *= 6378137.0D; 45 s = Math.round(s * 10000.0D) / 10000L; 46 return s; 47 } 48 49 private static double Rad(double _d) { 50 return _d * 3.141592653589793D / 180.0D; 51 } 52 53 } 这篇关于【LBS】移动互联网基于LBS地理位置应用开发必备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!