根据地图经纬度计算两点间的距离
经纬度丢失计算距离
1.纬度相同,经度不同
在纬度相同的情况下:
经度每隔0.00001度,距离相差约1米;
每隔0.0001度,距离相差约10米;
每隔0.001度,距离相差约100米;
每隔0.01度,距离相差约1000米;
每隔0.1度,距离相差约10000米。
2.经度相同,纬度不同
纬度每隔0.00001度,距离相差约1.1米;
每隔0.0001度,距离相差约11米;
每隔0.001度,距离相差约111米;
每隔0.01度,距离相差约1113米;
每隔0.1度,距离相差约11132米。
最近需要做地图的一些功能,其中有一点是需要计算 两点间的距离,网上其实大多都是使用如下方法1
方法1
function Rad(d){return d * Math.PI / 180.0;}
function getDistance(lat1,lng1,lat2,lng2){var radLat1 = Rad(lat1);var radLat2 = Number(Rad(lat2));var a = Number(radLat1 - radLat2);var b = Rad(lng1) - Rad(lng2);var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));s = s *6378.137 ;s = Math.round(s * 10000) / 10; return s;}
方法2
利用三角形的勾股定理,假设成两点的坐标就是平面直角坐标系的横纵坐标,求两点的距离 就是利用勾股定理去,(x2-x1)2 +(y2-y1)2 再进行开根.但是与坐标系中的横纵坐标不同的是,经纬度的距离是不太统一的,经度每隔0.1度,距离相差约10000米,每隔0.1度,距离相差约11132米,所以最后需要经度方向的距离和纬度方向的距离需要统一转换为m,这样才比较准确.
计算点到直线的距离,可以利用海伦公式 根据三边距离求出三角形面积,再由三角形面积求出高,高就是点到直线的距离.
public class DistanceUtils{//计算A,B两点的距离,(lng1,lat1)为点A的经度和纬度,(lng2,lat2)为点B的经度和纬度public static double getDistance(double lng1,double lat1,double lng2,double lat2){double lngDistance = Math.round((lng1-lng2)*100000); //经度方向的距离差 单位mdouble latDistance = Math.round((lat1-lat2)*111320); //纬度方向的距离差 单位mreturn Math.sqrt(Math.pow(lngDistance,2)+Math.pow(latDistance,2));}
}
根据地图经纬度计算两点间的距离相关推荐
- 经纬度互换、换算成米、两点的经纬度计算两点间的距离
经纬度互换 度(DDD):E 108.90593度 N 34.21630度 如何将度(DDD):: 108.90593度换算成度分秒(DMS)东经E 108度54分22.2秒?转换方法是将108 ...
- ArcGIS操作系列14- 经纬度互换、换算成米、两点的经纬度计算两点间的距离
1. 经纬度互换 度(DDD):E 108.90593度 N 34.21630度 1.1 如何将度(DDD):: 108.90593度换算成度分秒(DMS)东经E 108度54分22.2秒? ...
- Java 根据经纬度计算两点间的距离
Java实现 public final class DistanceUtils {/*** 地球半径,单位 km*/private static final double EARTH_RADIUS = ...
- 百度地图 地理位置 转 经纬度 计算两点间的距离
调用百度地图转成经纬度 百度地图web-api地址 tp 位置转经纬度 function getMap($address){$ak = config('common.map.ak');$url = c ...
- 根据地球上任意两点的经纬度计算两点间的距离
http://blog.chinaunix.net/u/6776/showart_694778.html 地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为6356.755千米, ...
- mysql数据库通过高德地图经纬度计算两点之间的距离
计算下面两个点的距离 106.711574,26.573862 107.152022,27.658974 SELECT PI() pi, ACOS(SIN((PI() / 180) * 26.5738 ...
- 地理大圆距离 C语言,通过经纬度计算两点之间的距离
2019独角兽企业重金招聘Python工程师标准>>> 项目里有一个需求是计算两台机器之间的距离,有了这两台机器的经纬度,距离就很好计算了. 有一个 球面余弦定律 可以用来可以计算球 ...
- 通过经纬度计算两点间的直线距离
/*** @description 通过经纬度计算两点间的直线距离* @param lat1* @param lng1* @param lat2* @param lng2* @returns {num ...
- matlab利用经纬度计算距离_【Matlab】根据经纬度计算两点间的球面距离
做建模或者研究空间数据,可能会遇到"根据经纬度计算两点间的球面距离"的问题,网上的资料很多,都是各种公式推导,但是一旦按公式编程计算,很可能得不到正确的距离.根本原因是在" ...
最新文章
- php正则判断不规范字符串,php学习_第9章_字符串处理与正则表达式
- Vue响应式数据: Observer模块实现
- 最全的BAT大厂面试题整理,系列篇
- 前端学习(2487):在VUE中使用element-ui的el-select组件时出现该报错
- Android 视频通话
- ftp服务器需要什么系统,ftp服务器需要什么系统
- 大寨鸿蒙系统的电器,华为传来两个好消息,鸿蒙OS大时代将于6月2日正式开启...
- 陶陶摘苹果(信息学奥赛一本通-T1103)
- heroku服务器_如何在Heroku上使用Express服务器部署React应用
- 深入探索android热修复技术原理_打卡活动:技术书籍书单
- 计算机课程表教案,计算机专业课程表
- JavaSE_1 基本概念
- CocoaPods管理iOS项目 2018年11月06日
- 矢量图形设计工具Artboard快捷键汇总
- 在Ubuntu下后台持续运行Python程序
- NERO-光盘刻录程序教程集
- php数据库操作类库doctrine使用全攻略
- php获取用户访问的dns,dnsproxy in php
- 史上最全!支持EOS映射的交易所统计|关于EOS映射,你想知道的都在这
- Bootstrap的aria-label和aria-labelledby