计算两点对于正北方向的朝向角度

主要是利用了turf.js的空间数据分析计算,turf主要用于浏览器端和node.js进行点、线、面计算

首先需要明确地图上一条带方向的线段与正北方向的夹角的概念,如图所示:

因此与正北方向的夹角范围在0~360度
具体计算代码如下:

/** 计算两点对于正北方向的朝向角度 [0,360]* @param {*} start format:{'latitude': 30, 'longitude': 120 }* @param {*} end*/
function bearing(start, end) {let rad = Math.PI / 180,lat1 = start.latitude * rad,lat2 = end.latitude * rad,lon1 = start.longitude * rad,lon2 = end.longitude * rad;const a = Math.sin(lon2 - lon1) * Math.cos(lat2);const b = Math.cos(lat1) * Math.sin(lat2) -Math.sin(lat1) * Math.cos(lat2) * Math.cos(lon2 - lon1);return radiansToDegrees(Math.atan2(a, b));
}/** 弧度转换为角度*/
function radiansToDegrees(radians) {const degrees = radians % (2 * Math.PI);return degrees * 180 / Math.PI;
}

以上,根据经纬度计算与正北方向的i夹角(方位角)计算完成

通过两点的经纬度计算与正北方向的夹角JS实现相关推荐

  1. JS计算两个经纬度坐标与正北方向夹角

    /** * 获取两个经纬度坐标正北方向夹角 * @param {Array} o_latlngs 原点经纬度坐标 [经度, 纬度] * @param {Array} latlngs 经纬度坐标 * @ ...

  2. 两个经纬度偏角_计算两个经纬度坐标与正北方向夹角

    /** * 获取两个经纬度坐标正北方向夹角 * @param {Array} o_latlngs 原点经纬度坐标 [经度, 纬度] * @param {Array} latlngs 经纬度坐标 * @ ...

  3. 经纬度互换、换算成米、两点的经纬度计算两点间的距离

    经纬度互换 度(DDD):E 108.90593度    N 34.21630度 如何将度(DDD):: 108.90593度换算成度分秒(DMS)东经E 108度54分22.2秒?转换方法是将108 ...

  4. ArcGIS操作系列14- 经纬度互换、换算成米、两点的经纬度计算两点间的距离

    1. 经纬度互换 度(DDD):E 108.90593度    N 34.21630度 1.1  如何将度(DDD):: 108.90593度换算成度分秒(DMS)东经E 108度54分22.2秒? ...

  5. 根据地球上任意两点的经纬度计算两点间的距离

    http://blog.chinaunix.net/u/6776/showart_694778.html 地球是一个近乎标准的椭球体,它的赤道半径为6378.140千米,极半径为6356.755千米, ...

  6. Java根据两点经纬度计算距离

    这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的 假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈 就叫作&qu ...

  7. 根据两点经纬度计算距离

    根据两点经纬度计算距离 这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的 假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等 ...

  8. Gps如何根据两点(经纬度)计算直线距离

    这些经纬线是怎样定出来的呢?地球是在不停地绕地轴旋转(地轴是一根通过地球南北两极和地球中心的假想线),在地球中腰画一个与地轴垂直的大圆圈,使圈上的每一点都和南北两极的距离相等,这个圆圈就叫作" ...

  9. matlab利用经纬度计算距离_【Matlab】根据经纬度计算两点间的球面距离

    做建模或者研究空间数据,可能会遇到"根据经纬度计算两点间的球面距离"的问题,网上的资料很多,都是各种公式推导,但是一旦按公式编程计算,很可能得不到正确的距离.根本原因是在" ...

最新文章

  1. 事件相机特征跟踪-模板跟踪方法
  2. opencv 霍夫线变换
  3. FormView里用FindControl找不到控件的解决方法
  4. windows ping 不通虚拟机
  5. python request下载-Python使用requests下载文件问题
  6. Android-FixBug热修复框架的使用及源码分析(不发版修复bug)
  7. CSS 实现文字、图片垂直对齐(vertical-align)
  8. ruby与python_Ruby对比Python的优势和劣势
  9. 为什么选择Docker?
  10. C++ 大神John Carmack的编程传说!还在抱怨C++难学吗?看大佬操作!
  11. Lenovo ThinkPad 3999元型号发布 并不属于SL系列
  12. 软考系统架构师笔记-综合知识重点(三)
  13. 数据库 Oracle数据库对象二
  14. 首次亮相!法拉第未来公布FF 91内饰图:贾跃亭心血没白费
  15. 干货!一文讲清楚电商商品生产和库存的数据分析
  16. 完美解决html中select的option不能隐藏的问题。
  17. Node.js CVE-2017-14849复现(详细步骤)
  18. 魔兽争霸3地图加密,支持重制版-魔兽争霸3地图加密实操,魔兽地图加密工具
  19. php人民币转换,PHP转换,如何实现人民币中文大写与数字相互转换?
  20. 解决在湖北政务服务网注册武汉公积金账户时无法点击下一步的问题

热门文章

  1. git ssh 登陆失败: no matching host key type found. Their offer: ssh-dss 解决办法
  2. 桌上有一只盘子,每次只能放入一个水果。请用Wait()、Signal()原语实现爸爸、儿子、女儿三个并发进程的同步。
  3. 目前梦幻山东区人最多的服务器,梦幻西游山东区各个服务器开的时间!
  4. 第二章练习题(2):计算圆柱面积和体积
  5. 微信公众号使用:微信公众平台企业号一次发布多条图文消息的方法
  6. 在chrome下-webkit-box布局的一个bug
  7. 300个涵盖IT各方面的免费资源(中)——设计与编码篇
  8. SuMa++: Efficient LiDAR-based Semantic SLAM
  9. Windows 下常用盗版软件的替代免费软件列表
  10. 微信公众号改名后阅读量涨了吗?