已知基点的经纬度,根据方位角和运动距离求另外一点的经纬度
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 计算思路
计算第二点的经度,就是 水平平移的距度(dsinα)除以 当前纬度切面周长(2πarc)。再除以360度 ,就知道了水平横向平移了多少度,再加上long1,就是long2的值了。
计算第二点的纬度,比较简单,就是, 垂直平移的距离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);}
已知基点的经纬度,根据方位角和运动距离求另外一点的经纬度相关推荐
- Java 通过已知点的经纬度,相对角度,距离计算另一点的经纬度
问题背景:自己在使用高德地图时没有发现通过已知点经纬度,角度,距离计算另一点经纬度的方法,所以只好自己实现了.查询之后发现国内的博客基本都是计算两点距离,计算点到线距离的距离等,有几篇也都是C语言形式 ...
- 已知空间一点到另外两点直线的距离
转自:http://www.cnblogs.com/clarkustb/archive/2008/11/04/1326500.html 已知空间一点到另外两点直线的距离 设空间中的三点为M1,M2,M ...
- 给定一个二维 0-1 矩阵,其中 1 表示陆地,0 表示海洋,每个位置与上下左右相连。已知矩阵中有且只有两个岛屿,求最少要填海造陆多少个位置才可以将两个岛屿相连。
给定一个二维 0-1 矩阵,其中 1 表示陆地,0 表示海洋,每个位置与上下左右相连.已知矩阵中有且只有两个岛屿,求最少要填海造陆多少个位置才可以将两个岛屿相连. 输入是一个二维整数数组,输出是一个非 ...
- C++实现已知二叉树前序遍历和中序遍历,求后序遍历
C++实现已知二叉树前序遍历和中序遍历,求后序遍历 一.基本概念 1.先序遍历(NLR)可以确定二叉树的父子结点: 2.中序遍历(LNR)可以确定二叉树的左右子树: 3.后序遍历(LRN)可以确定二叉 ...
- GIS算法--已知一点经纬度,方位角,距离求另一点
已知一个点A的经纬度坐标,点B相对与A的方位角,B到A的距离,求B的经纬度坐标,用Javascript语言来完成该算法,借用了一下openL CommonFunc.caculate={Vincenty ...
- 已知点的经纬度 与另一个点的距离 以及方向角 求另一点的经纬度
public class AngleUtil { /** * 求B点经纬度 * @param A 已知点的经纬度, * @param distance AB两地的距离 单位km * @param ...
- 已知一点的经纬度和该点到另一点的距离,求另一点的经纬度
刚做了将经纬度转换成距离,现在又要弄将距离转换成经纬度,哎!伤不起啊! 以下是将距离换算成经纬度,有误差. //将相对于起点的距离转换为经纬度,distance代表到点的距离,angle代表方位角度 ...
- 已知图片顶点坐标和点相对图片位置求点坐标
给一张各个角为直角的图片,已知东北角(NouthEast)西南角(Southwest)和西北角(Northwest)位置.图片中有一个点(一定于图片内),知道该点相对于图片的位置(从图片的左上顶点开始 ...
- 已知三角形的三个顶点的坐标,求三角形的面积
已知:三角形ABC的三个顶点的坐标为: 求:三角形ABC的面积? 解1: 解2: 解2是解1的拓展与延伸,但是在实际的变成过程中,解2更利于我么更快的完成编程.
最新文章
- 【图像处理】——图像的二值化操作及阈值化操作(固定阈值法(全局阈值法——大津法OTSU和三角法TRIANGLE)和自适应阈值法(局部阈值法——均值和高斯法))
- P2272-[ZJOI2007]最大半连通子图【tarjan,缩点】
- 一步步编写操作系统 58 门、调用门与RPL序 3
- Nagios监控平台完全攻略 (二)
- 微信又干了件大好事 老司机们快看!
- Multi thread: std::promise
- Angular Material 教程之布局篇 (五) : 布局参数
- ScaleAnimation缩放动画Demo
- OSPF Sham-Link
- python学习笔记之读取pdf文件库pdfminer(二)
- Excel工作表保护在哪里撤销?
- C语言三位数的整数立方和,c语言求一个三位数正整数n各个数位上数据的立方和...
- 三门峡市新型智慧城市顶层设计方案通过专家评审
- 二级域名分发系统源码
- DB2下将16进制转为十进制
- 收官之战,年终的财务分析如何做?
- 微博php面试,新浪微博php实习生
- fgets函数的使用
- Linux下不保存退出以及相关退出命令
- Legendre多项式