百度地图计算两点之间距离

来源:互联网 发布:java 替换 编辑:程序博客网 时间:2024/05/19 13:22

路线规划提供了获取路线距离的方法,见MKRoutePlan 类的 getDistance 方法。

如果是计算任意两点的距离,自2.0.0版本开始,Android SDK为开发者提供了计算距离的接口(DistanceUtil),具体使用方法如下:

1.GeoPoint p1LL = new GeoPoint(39971802, 116347927);

2.GeoPoint p2LL = new GeoPoint(39892131, 116498555);

3.double distance = DistanceUtil.getDistance(p1LL, p2LL);

如果开发者使用的是1.3.5及以前的版本,在计算任意两点之前的距离时,有如下两种方法:一种利用勾股定理计算,适用于两点距离很近的情况;一种按标准的球面大圆劣弧长度计算,适用于距离较远的情况。

    1. 1.static double DEF_PI = 3.14159265359; // PI2.static double DEF_2PI= 6.28318530712; // 2*PI3.static double DEF_PI180= 0.01745329252; // PI/180.04.static double DEF_R =6370693.5; // radius of earth5.public double GetShortDistance(double lon1, double lat1, double lon2, double lat2)6.{7.double ew1, ns1, ew2, ns2;8.double dx, dy, dew;9.double distance;10.// 角度转换为弧度11.ew1 = lon1 * DEF_PI180;12.ns1 = lat1 * DEF_PI180;13.ew2 = lon2 * DEF_PI180;14.ns2 = lat2 * DEF_PI180;15.// 经度差16.dew = ew1 - ew2;17.// 若跨东经和西经180 度,进行调整18.if (dew > DEF_PI)19.dew = DEF_2PI - dew;20.else if (dew < -DEF_PI)21.dew = DEF_2PI + dew;22.dx = DEF_R * Math.cos(ns1) * dew; // 东西方向长度(在纬度圈上的投影长度)23.dy = DEF_R * (ns1 - ns2); // 南北方向长度(在经度圈上的投影长度)24.// 勾股定理求斜边长25.distance = Math.sqrt(dx * dx + dy * dy);26.return distance;27.}28.public double GetLongDistance(double lon1, double lat1, double lon2, double lat2)29.{30.double ew1, ns1, ew2, ns2;31.double distance;32.// 角度转换为弧度33.ew1 = lon1 * DEF_PI180;34.ns1 = lat1 * DEF_PI180;35.ew2 = lon2 * DEF_PI180;36.ns2 = lat2 * DEF_PI180;37.// 求大圆劣弧与球心所夹的角(弧度)38.distance = Math.sin(ns1) * Math.sin(ns2) + Math.cos(ns1) * Math.cos(ns2) * Math.cos(ew1 - ew2);39.// 调整到[-1..1]范围内,避免溢出40.if (distance > 1.0)41.     distance = 1.0;42.else if (distance < -1.0)43.      distance = -1.0;44.// 求大圆劣弧长度45.distance = DEF_R * Math.acos(distance);46.return distance;47.}48.double mLat1 = 39.90923; // point1纬度49.double mLon1 = 116.357428; // point1经度50.double mLat2 = 39.90923;// point2纬度51.double mLon2 = 116.397428;// point2经度52.double distance = GetShortDistance(mLon1, mLat1, mLon2, mLat2);





      1. 0 0
        原创粉丝点击
        热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 穿高帮钉鞋踢人造草出现水泡怎么办 耐克大吕布鞋面上的标志起来怎么办 国三柴油车环保查尾气超标怎么办 手上被玻璃手上扎进玻璃丝怎么办 月子腰疼怎么办能养过来吗 躺太久屁股长一粒一粒的痒怎么办啊 乳腺癌两年后手臂疼胳膊肿怎么办 胳膊疼就和抻筋是的怎么办 四岁胳膊扭了肿了怎么办 干燥综合症使皮肤变黑色了怎么办 刚生的小孩脖子上有淋巴结怎么办 地包天矫正期间嘴歪了怎么办 5个月的宝宝歪胫怎么办 三个多月的宝宝有点斜颈怎么办 5月宝宝有点斜颈偏向左侧怎么办 外斜术后变周期性内斜怎么办 右腰劳损休息一个多月还痛怎么办 宝宝鼻子不通气用嘴呼吸怎么办 窦性心律过速怎么办st-t改变 跑步机跑带上撒油跑起来滑怎么办 娃儿上嘴唇里面破了怎么办图片 支付宝添加好友点忽略了怎么办 如果综合评价考了两间大学怎么办 国二报名时民族错了怎么办 屁股凹陷下去一块已经萎缩了怎么办 我家孩子上高中了英语不好怎么办 驼背脖子向前倾怎么办用背背佳 屁股大又肥是骨盆前倾怎么办 手术40多天引起小腿变细了怎么办 老师教育学生学生跑出教室你怎么办 有矛盾舍友发朋友圈攻击我怎么办 飞机杯送的润滑油很快用完了怎么办 人笨记性不好内向反应迟钝该怎么办 洗衣机滋生了大量的霉菌在怎么办? 爸妈给兄弟买的房子贵很多怎么办 输了十几万 不敢跟爸妈讲怎么办 赌博欠2万不敢和爸妈讲怎么办 学校凳子坏了丢了 现在要查怎么办 我想写字可就是写的不好看怎么办 我的字写的很丑怎么办 大母指腱鞘炎好了之后又犯了怎么办