GPS坐标间距运算
- 格式:doc
- 大小:13.00 KB
- 文档页数:2
从IOS或者android端获取GPS经纬度坐标,获取GPS坐标间距运算,具体代码如下package mon.util;
/*
* 将度分秒单位数据转换为度单位数据度= 度+ 分/ 60 + 秒/ 60 / 60 例如:经度= 116°20’43” 纬度=
* 39°12’37” 经度= 116 + 20 / 60 + 43 / 60 / 60 = 116.34528°纬度= 39 + 12 /
* 60 + 37 / 60 / 60 = 39.21028° NTU经度= 116.34528 * 100000 = 11634528(NTU)
* NTU纬度= 39.21028 * 100000 = 3921028(NTU)其格式的经纬值先转换度,再运算。
*
* 比如:点A的经度为11695400,纬度为3995400。
点B的经度为11695300,纬度为3995300。
公式:两点间距离= [
* (A点经度- B点经度)^2 + (A点纬度- B点纬度)^2 ] ^ (1/2) = [ (11695400 - 11695300)^2 + * (3995400 - 3995300)^2 ] ^(1/2) =(10000+10000) ^ (1/2) =141米
*/
public class GPSUtils {
/**
* 求a,b两坐标间距(单位:米)
* @param lata
* a点的经度
* @param lona
* a点的纬度
* @param latb
* b点的经度
* @param lonb
* b点的纬度
* @return
*/
public static double betweenDistance(double lata, double lona, double latb,
double lonb) {
double lataNTU = lata*100000;
double lonaNTU = lona*100000;
double latbNTU = latb*100000;
double lonbNTU = lonb*100000;
double latV = Math.abs(lataNTU - latbNTU);
double lonV = Math.abs(lonaNTU - lonbNTU);
double rls = (latV * latV) + (lonV * lonV);
rls = Math.sqrt(rls);
return rls;
}
public static void main(String[] args) {
Double a = betweenDistance(113.30001,22.9155, 113.30000,22.9155);
System.out.println(a);
} }。