azimuthUtils

项目源码链接如下:Gitee项目链接

介绍

利用经纬度坐标,求解方位角【JS实现】

安装教程

本实现只用到了一个库 Threejs,Threejs主要用于实现3D场景,本实现利用Three.js中的一些工具类,进行数据转换

安装Threejs

npm install three --save

使用案例

//引入Threrjs
const THREE=require('three')  //npm install three --save
// import * as THREE from 'three'
//用例数据var lonlat0 = [ 34.80770804146611, 113.55585694313051] //参照点var lonlat1 = [ 34.807743270320515, 113.55691373348238] //东var lonlat2 = [ 34.807139974109454, 113.55676352977753] //东南var lonlat3 = [ 34.807003461215416, 113.55584621429445] //南var lonlat4 = [ 34.807126763194105, 113.55516493320467] //西南var lonlat5 = [ 34.80772125228826,113.5548484325409] //西var lonlat6 = [34.80861958322779, 113.55479478836061] //西北var lonlat7 = [ 34.80863719746204,113.55581402778627] //北var lonlat8 = [ 34.80850949417833, 113.5569351911545] //东北
// lon1经度 lat纬度
//lonlat1 坐标1
//lonlat2 坐标2
function azimuth(lonlat1, lonlat2) {var lon1=THREE.MathUtils.degToRad(lonlat1[1])var lat1=THREE.MathUtils.degToRad(lonlat1[0])var lon2=THREE.MathUtils.degToRad(lonlat2[1])var lat2=THREE.MathUtils.degToRad(lonlat2[0])if(lon1==lon2){if (lat2 >= lat1){return 0}else{return 180 }}if (lat1 == lat2){if(lon2 > lon1 ){return 90}else if(lon2 < lon1){return 270}}var a = THREE.Math.radToDeg(Math.atan((lon2 - lon1) * Math.cos(lat2) / (lat2 - lat1)))if(lat2 > lat1){if(lon2 > lon1){return a}else{return a + 360}}else{return a + 180}
}console.log("东",azimuth(lonlat0, lonlat1) )
console.log("东南",azimuth(lonlat0, lonlat2) )
console.log("南",azimuth(lonlat0, lonlat3) )
console.log("西南",azimuth(lonlat0, lonlat4) )
console.log("西",azimuth(lonlat0, lonlat5) )
console.log("西北",azimuth(lonlat0, lonlat6) )
console.log("北",azimuth(lonlat0, lonlat7) )
console.log("东北",azimuth(lonlat0, lonlat8) )

执行该程序

 node .\index2.js

方位坐标系参照如下

结果如下

东   87.67505557361658
东南 127.34881807813873
南   180.7163204119453
西南 224.34785264592313
西   270.91401595485104
西北 316.26689801310204
北   357.8282236159254
东北 47.8461480246868

Js 根据经纬度坐标计算方位角相关推荐

  1. 依据地图上的经纬度坐标计算某个点到多边形各边的距离

    http://www.th2w.com/article/85 依据地图上的经纬度坐标计算某个点到多边形各边的距离 最近公司有一个需求:依据地图上的经纬度坐标计算某个点到多边形各边的距离. 主要原理: ...

  2. matlab如何测两点的角度_根据2点经纬度,计算方位角,以及计算2条线的夹角

    以真北为0度起点,由东向南向西顺时针旋转360度,主要是用于控制象限. 根据2点经纬度,计算方位角 [csharp] /// /// 给定2点,获得经纬度 /// /// 起点经纬度,都是以度为单位 ...

  3. 根据2点经纬度,计算方位角,以及计算2条线的夹角

    项目场景1:根据2点经纬度,计算方位角 以真北为0度起点,由北向东向南向西顺时针旋转360度,主要是用于控制象限. 提示:这里简述项目相关背景: [csharp] <summary> // ...

  4. 已知点的经纬度坐标计算/读取DEM高程信息/海拔高度

    已知点的经纬度坐标计算/读取DEM高程信息/海拔高度 思路 环境 依赖 安装GDAL 安装依赖包 测试GDAL 数据依赖 python代码 参考 思路 实现条件 1.GDAL库 2.DEM数据 开发语 ...

  5. 根据经纬度坐标计算实际距离

    double  hypot( double  x,  double  y)  ... {       return sqrt(x * x + y * y); } double  distance( d ...

  6. python学习-108-根据经纬度坐标计算距离

    前言: 根据经纬度坐标计算两点距离,并不能直接使用欧氏距离,因为经纬度是在曲面上的要计算弧度的影响.因此本文根据经纬度坐标公式代码实现. 参考链接: https://blog.csdn.net/xie ...

  7. 计算坐标点的距离计算机公式,使用经纬度坐标计算多个点之间距离的Excel公式...

    我目前正在制定一个带有两个表格的模拟数据库架构:Booking和Waypoint.使用经纬度坐标计算多个点之间距离的Excel公式 预定存储出租车预订信息. 航点存储该拾取和在行程中脱落点,与纬度经度 ...

  8. php经纬度换算距离,PHP根据经纬度坐标计算距离

    PHP根据经纬度坐标计算距离 在有些应用中需要用到计算距离的功能,例如附近的商家.离我最近等功能. W为纬度对应的弧度,J为经度对应的弧度,如上图所示 下面代码  lat是纬度  lng是经度 看类代 ...

  9. 给定经纬度计算距离_通过经纬度坐标计算距离的方法(经纬度距离计算)ZZ

    通过经纬度坐标计算距离的方法(经纬度距离计算) 最近在网上搜索"通过经纬度坐标计算距离的方法",发现网上大部分都是如下的代码: #define PI 3.14159265 stat ...

最新文章

  1. 【PC工具】更新常用USB转串口芯片MAC驱动,CH340G驱动安装有可能遇到的问题及解决办法...
  2. ASP.NET MVC 在控制器中获取某个视图动态的HTML代码
  3. 将JAR依赖项添加到Eclipse插件Maven Tycho构建
  4. “全人类的知识宝藏”维基百科迎来了20岁的生日!
  5. 计算机休眠能降低硬件损耗,Win7居然会出现“失眠”——Win7无法休眠问题解析...
  6. 如何跟成功的男人谈恋爱?
  7. 【洛谷P3369】 (模板)普通平衡树
  8. C语言简易学生管理系统(含源码)
  9. 【外刊阅读】1. There is no “gay gene“
  10. DELPHI XE10 fmx表格控件Grid单元格根据内容值来设置颜色
  11. 分布式计算 lab2 Java RMI
  12. javascript机器学习
  13. 关于快递查询接口的实现
  14. python键盘控制_Python 键盘/鼠标控制
  15. 中国好生意 经典论述:哈林是来主持的,刘欢是来开家长会的,那英是来唠嗑的,杨坤是来做宣传的,而......
  16. 数字图像处理(5)- 图像恢复
  17. 基于全生命周期的主数据管理:MDM详解与实战学习02 第二章 主数据管理的内涵
  18. 排队叫号医院管理源码
  19. 一种的STM32的应用喂狗方法
  20. 大数据培训技术使用spark对phoenix的读写

热门文章

  1. 【机器学习】专题学习丨1. 损失函数loss积累丨
  2. 时间复杂度与大O记法的理解
  3. python实现微信接龙统计
  4. 数学建模之储药柜的设计
  5. 数学建模——规划模型
  6. Linux安装tar软件教程,tar的简单实用及linux常见软件的安装
  7. MapReduce程序中的万能输入FileInputFormat.addInputPaths
  8. C#使用消息队列(MSMQ)
  9. 秋招提前批来了,早就是优势!
  10. stm32f407能跑linux吗_stm32能跑linux吗