1. 已知基点的经纬度,根据方位角和运动距离求另外一点的经纬度


1.1 需求概述及图解

假设方位角是α, 那从点1到点2的平移距离分别如下所示dsinα, dcosα。 这里正北为0度。已知基点(点1)经纬度(long1, lat1)和距离d。 求点2的经纬度(long2,lat2)


1.2 求当前的切面半径

Φ是当前基点(点1)的纬度值。则当前的纬度的切面半径 arc = ARCcos(Φ) ,其中Φ其实就是当前的方位的纬度值,即arc = ARCcos(lat1)


1.3 地球平均半径

  • 地球的平均半径 大约3959英里(6371.393千米) 。这个数字是地心到地球表面所有各点距离的平均值。
  • 这里取平均半径那么ARC=6371.393*1000(米)

1.4 计算思路

  1. 计算第二点的经度,就是 水平平移的距度(dsinα)除以 当前纬度切面周长(2πarc)。再除以360度 ,就知道了水平横向平移了多少度,再加上long1,就是long2的值了。

  2. 计算第二点的纬度,比较简单,就是, 垂直平移的距离d(d*cosα)除以 地球纵向周长,再除以360度,就知道纵向平移了多少度,再加上lat1,就知道lat2的值了。

总结:

  • long2 = long1 + dsinα/[ARCcos(lat1)*2π/360]
  • lat2 = lat1 +d*cosα/ (ARC *2π/360)

1.5 Java代码实现

    /*** MethodName: calcLatAndlon* Description:** @date 2021/9/21 20:35* @params: [posX 终点位置X轴的位置信息, posY 终点位置Y轴的位置信息, basePointLongitude 基点的GPS经度坐标,* basePointLatitude 基点的GPS纬度坐标, azimuth 方位角(弧度), distance 2点之间的直线距离]* @author Tianjiao*/public void calcLatAndlon(double basePointLongitude, double basePointLatitude, double azimuth, double distance) {// 地球半径 单位米(m)double arc = 6371.393 * 1000;// 终点的经度坐标double longitude = basePointLongitude + distance * Math.sin(azimuth) / (arc * Math.cos(basePointLongitude) * 2 * Math.PI / 360);// 终点的纬度坐标double latitude = basePointLatitude + distance * Math.cos(azimuth) / (arc * 2 * Math.PI / 360);}


已知基点的经纬度,根据方位角和运动距离求另外一点的经纬度相关推荐

  1. Java 通过已知点的经纬度,相对角度,距离计算另一点的经纬度

    问题背景:自己在使用高德地图时没有发现通过已知点经纬度,角度,距离计算另一点经纬度的方法,所以只好自己实现了.查询之后发现国内的博客基本都是计算两点距离,计算点到线距离的距离等,有几篇也都是C语言形式 ...

  2. 已知空间一点到另外两点直线的距离

    转自:http://www.cnblogs.com/clarkustb/archive/2008/11/04/1326500.html 已知空间一点到另外两点直线的距离 设空间中的三点为M1,M2,M ...

  3. 给定一个二维 0-1 矩阵,其中 1 表示陆地,0 表示海洋,每个位置与上下左右相连。已知矩阵中有且只有两个岛屿,求最少要填海造陆多少个位置才可以将两个岛屿相连。

    给定一个二维 0-1 矩阵,其中 1 表示陆地,0 表示海洋,每个位置与上下左右相连.已知矩阵中有且只有两个岛屿,求最少要填海造陆多少个位置才可以将两个岛屿相连. 输入是一个二维整数数组,输出是一个非 ...

  4. C++实现已知二叉树前序遍历和中序遍历,求后序遍历

    C++实现已知二叉树前序遍历和中序遍历,求后序遍历 一.基本概念 1.先序遍历(NLR)可以确定二叉树的父子结点: 2.中序遍历(LNR)可以确定二叉树的左右子树: 3.后序遍历(LRN)可以确定二叉 ...

  5. GIS算法--已知一点经纬度,方位角,距离求另一点

    已知一个点A的经纬度坐标,点B相对与A的方位角,B到A的距离,求B的经纬度坐标,用Javascript语言来完成该算法,借用了一下openL CommonFunc.caculate={Vincenty ...

  6. 已知点的经纬度 与另一个点的距离 以及方向角 求另一点的经纬度

    public class AngleUtil { /** * 求B点经纬度 * @param A 已知点的经纬度, * @param distance   AB两地的距离  单位km * @param ...

  7. 已知一点的经纬度和该点到另一点的距离,求另一点的经纬度

    刚做了将经纬度转换成距离,现在又要弄将距离转换成经纬度,哎!伤不起啊! 以下是将距离换算成经纬度,有误差. //将相对于起点的距离转换为经纬度,distance代表到点的距离,angle代表方位角度 ...

  8. 已知图片顶点坐标和点相对图片位置求点坐标

    给一张各个角为直角的图片,已知东北角(NouthEast)西南角(Southwest)和西北角(Northwest)位置.图片中有一个点(一定于图片内),知道该点相对于图片的位置(从图片的左上顶点开始 ...

  9. 已知三角形的三个顶点的坐标,求三角形的面积

    已知:三角形ABC的三个顶点的坐标为: 求:三角形ABC的面积? 解1: 解2: 解2是解1的拓展与延伸,但是在实际的变成过程中,解2更利于我么更快的完成编程.

最新文章

  1. 【图像处理】——图像的二值化操作及阈值化操作(固定阈值法(全局阈值法——大津法OTSU和三角法TRIANGLE)和自适应阈值法(局部阈值法——均值和高斯法))
  2. P2272-[ZJOI2007]最大半连通子图【tarjan,缩点】
  3. 一步步编写操作系统 58 门、调用门与RPL序 3
  4. Nagios监控平台完全攻略 (二)
  5. 微信又干了件大好事 老司机们快看!
  6. Multi thread: std::promise
  7. Angular Material 教程之布局篇 (五) : 布局参数
  8. ScaleAnimation缩放动画Demo
  9. OSPF Sham-Link
  10. python学习笔记之读取pdf文件库pdfminer(二)
  11. Excel工作表保护在哪里撤销?
  12. C语言三位数的整数立方和,c语言求一个三位数正整数n各个数位上数据的立方和...
  13. 三门峡市新型智慧城市顶层设计方案通过专家评审
  14. 二级域名分发系统源码
  15. DB2下将16进制转为十进制
  16. 收官之战,年终的财务分析如何做?
  17. 微博php面试,新浪微博php实习生
  18. fgets函数的使用
  19. Linux下不保存退出以及相关退出命令
  20. Legendre多项式

热门文章

  1. Hive 使用UDF函数对数据SM3加密
  2. 带教师端和家长端微信小程序的智慧校园平台源码
  3. 区块链+保险:众安在线养鸡,人寿精准扶贫
  4. 车间设备数据采集与MES系统应用
  5. 小孩子学编程,教什么语言好?给家长和老师提出的十条建议
  6. c语言二维图像傅立叶变换,C语言数据结构算法之实现快速傅立叶变换.pdf
  7. 使用Stargate访问K8ssandra,Springboot整合Cassandra
  8. [JVM]虚拟机类加载机制
  9. 【经验】gitHub上很棒的一些Unity资源分享(持续更新)
  10. Linux系统运维常见面试题汇总