已知一点经纬度,方位角,距离,求另一点经纬度

参考了博文:http://blog.csdn.net/pyx6119822/article/details/52298037

------------------------------------------------

package hellotest;public class LonLatTest3 {/** 大地坐标系资料WGS-84 长半径a=6378137 短半径b=6356752.3142 扁率f=1/298.2572236*//** 长半径a=6378137 */private double a = 6378137;/** 短半径b=6356752.3142 */private double b = 6356752.3142;/** 扁率f=1/298.2572236 */private double f = 1 / 298.2572236;/*** 计算另一点经纬度* * @param lon*            经度* @param lat*            维度* @param lonlat*            已知点经纬度* @param brng*            方位角* @param dist*            距离(米)*/public void computerThatLonLat(double lon, double lat, double brng, double dist) {double alpha1 = rad(brng);double sinAlpha1 = Math.sin(alpha1);double cosAlpha1 = Math.cos(alpha1);double tanU1 = (1 - f) * Math.tan(rad(lat));double cosU1 = 1 / Math.sqrt((1 + tanU1 * tanU1));double sinU1 = tanU1 * cosU1;double sigma1 = Math.atan2(tanU1, cosAlpha1);double sinAlpha = cosU1 * sinAlpha1;double cosSqAlpha = 1 - sinAlpha * sinAlpha;double uSq = cosSqAlpha * (a * a - b * b) / (b * b);double A = 1 + uSq / 16384 * (4096 + uSq * (-768 + uSq * (320 - 175 * uSq)));double B = uSq / 1024 * (256 + uSq * (-128 + uSq * (74 - 47 * uSq)));double cos2SigmaM=0;double sinSigma=0;double cosSigma=0;double sigma = dist / (b * A), sigmaP = 2 * Math.PI;while (Math.abs(sigma - sigmaP) > 1e-12) {cos2SigmaM = Math.cos(2 * sigma1 + sigma);sinSigma = Math.sin(sigma);cosSigma = Math.cos(sigma);double deltaSigma = B * sinSigma * (cos2SigmaM + B / 4 * (cosSigma * (-1 + 2 * cos2SigmaM * cos2SigmaM)- B / 6 * cos2SigmaM * (-3 + 4 * sinSigma * sinSigma) * (-3 + 4 * cos2SigmaM * cos2SigmaM)));sigmaP = sigma;sigma = dist / (b * A) + deltaSigma;}double tmp = sinU1 * sinSigma - cosU1 * cosSigma * cosAlpha1;double lat2 = Math.atan2(sinU1 * cosSigma + cosU1 * sinSigma * cosAlpha1,(1 - f) * Math.sqrt(sinAlpha * sinAlpha + tmp * tmp));double lambda = Math.atan2(sinSigma * sinAlpha1, cosU1 * cosSigma - sinU1 * sinSigma * cosAlpha1);double C = f / 16 * cosSqAlpha * (4 + f * (4 - 3 * cosSqAlpha));double L = lambda - (1 - C) * f * sinAlpha* (sigma + C * sinSigma * (cos2SigmaM + C * cosSigma * (-1 + 2 * cos2SigmaM * cos2SigmaM)));double revAz = Math.atan2(sinAlpha, -tmp); // final bearingSystem.out.println(revAz);System.out.println(lon+deg(L)+","+deg(lat2));}/*** 度换成弧度* * @param d*            度* @return 弧度*/private double rad(double d) {return d * Math.PI / 180.0;}/*** 弧度换成度* * @param x*            弧度* @return 度*/private double deg(double x) {return x * 180 / Math.PI;}public static void main(String[] args) {LonLatTest3 test=new LonLatTest3();double lon=121.62486;double lat=29.87816;double brng=90;double dist=50;test.computerThatLonLat(lon, lat, brng, dist);}}


效果:








本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/538661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python的基本语术_一起学python-彻底掌握专业术语“变量”的概念

昨天分享了笨方法学习编程,今天就让我们通过实战来接触python,掌握专业术语“变量”的概念吧 python 中的变量的基本概念和初中代数的方程式X的概念是一样的,只是在计算机程序当中这个X不仅仅可以代表一个数字,还可以代表一段文字…

lamp自动部署工具_Linux一键配置工具ezhttp介绍

简介: ezhttp是一个Linux一键配置工具,采用bash脚本语言编写。支持自动配置LAMP,LNMP,LNAMP环境,以前提供各种其它的配置工具,如自动配置swap,配置iptables等。项目托管在github,地址为https://github.com/centos-bz/e…

git设置全局账号密码_jenkins2.222使用之二、总体设置

构建前提:由于构建的时候是基于maven、git(码云)以及jdk1.8来的,所以这些都需要和jenkins安装在同一台服务器上面。全局工具配置:1、配置jdk系统管理-全局工具配置-jdk,配置如下:jdk版本可以配置多个,构建的时候&#…

Mybatis源码之(TypeAliasRegistry)TypeAlias别名实现机制

原文链接:http://blog.csdn.net/qq924862077/article/details/52612589 ---------------------------------- 在Mybatis编程中我们经常会用到将某个bean作为参数类型parameterType或者结果返回值类型ResultType,所以很多时候我们需要把完成的Bean的包名…

Java中Synchronized的用法

2019独角兽企业重金招聘Python工程师标准>>> 《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念…

concat特征融合_MSFNet:多重空间融合网络进行实时语义分割(北航和旷视联合提出)...

作者:Tom HardyDate:2020-02-01来源:MSFNet:多重空间融合网络进行实时语义分割(北航和旷视联合提出)原文链接:https://arxiv.org/abs/1911.07217主要内容实时语义分割是一项具有挑战性的任务,因…

wifi信号手机测试软件,专业的WiFi检测工具有哪些?如何解决wifi信号不好?

原标题:专业的WiFi检测工具有哪些?如何解决wifi信号不好?有朋友wifi测试软件有哪些?WiFi信号和声音一样,强弱都是可以测量的,检测WiFi的方法有很多,作为普通的家庭用户,我们有时需要…

python创建数组与列表_python基础(三):数组和列表

下面是小凰凰的简介,看下吧! 💗人生态度:珍惜时间,渴望学习,热爱音乐,把握命运,享受生活 💗学习技能:网络 -> 云计算运维 -> python全栈( 当前正在学习…

Mybatis之typeAlias配置的3种方法

原文链接&#xff1a;http://www.cnblogs.com/lxcmyf/p/6444120.html ------------------------------- 扩展阅读&#xff1a;http://blog.csdn.net/zengmingen/article/details/70163420 ------------------------------------ 1.定义别名&#xff1a; <typeAliases>…

计算机函数两个表格找相同,wps筛选出两个表格中的重复项(countif 函数简单使用)【已解决】...

假设&#xff0c;有以下两个表格文件。为了掩饰&#xff0c;数据就几个。AB两个表格&#xff0c;现在要做的是从A表格中&#xff0c;去除跟B表格重复的内容&#xff0c;只保留剩余的数据。第一步&#xff0c;先把B表格中的 蔬菜名称 那一列&#xff0c;复制到A表格中。(如果数据…

python常用正则表达式_Python3常用正则表达式

正则表达式速查表 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如&#xff0c;“n“匹配字符”n“。”\n“匹配一个换行符。串行”\\“匹配”\“而”\(“则匹配”(“。 ^ 匹配输入字符串的开始位置。如果设置了RegExp…

Spring Cloud 学习笔记(一) 之服务治理模块Spring Cloud Eureka 搭建注册中心

2019独角兽企业重金招聘Python工程师标准>>> 关于springboot的学习请参考前面的文章 接下来我们会开启一系列关于springcloud的学习文章。 一、概念 首先我们看下官方的解释 Service Discovery is one of the key tenets of a microservice-based architecture. Try…

java分治法求数列的最大子段和_同事为进大厂天天刷Java面试题,面试却履败!究其原因竟是它在捣鬼。...

写在前面疫情过后&#xff0c;招聘与求职受影响到底有多大&#xff1f;我不知道&#xff0c;但我的真实感受是&#xff0c;即使有疫情的影响&#xff0c;最近还是持续有朋友来跟我说他们今年工作的新动向。有人跳槽去了大厂&#xff0c;有人下定决心出来创业&#xff0c;也有人…

中国移动wlan优化app-截图

Nokia的wlan优化项目得到了中国移动省公司的认同&#xff0c;成为了重点项目&#xff0c;转移了其他项目组开发。 我单独负责开发Android端app。还没开发完&#xff0c;源码也移交了&#xff0c;不再继续参与开发。 新任务是负责现有平台从Oracle转为大数据。截图纪念下近半个…

linux软件安装管理

Linux软件安装管理 TonyLinux系统工程师难度初级 时长 3小时 6分 学习人数64016 综合评分9.8收藏上面是linux 的源代码安装包 linux有两种类型的软件安装方式&#xff1a; 1、源代码安装 这种方式的软件安装&#xff0c;可以指定软件的安装目录&#xff0c;软件的运行效率高&am…

ts语音自建服务器,自建TeamSpeak语音服务器,免费提供给专注游戏的玩家使用!...

先提一句&#xff0c;带过节奏的云玩家 可以滚了&#xff01;​​​以下内容更新于2020/5/22 15:30&#xff1a;​根据 洛杉矶湖人名宿孙悦 ​的提醒&#xff0c;不推荐下载ts1.cn的盗版客户端&#xff0c;也不推荐俱乐部或者各位玩家租用ts1.cn的盗版服务器。具体可查看帖子 h…

电子电器架构刷写方案——General Flash Bootloader

电子电器架构刷写方案——General Flash Bootloader 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 注&#xff1a;文章1万字左右&#xff0c;深度思考者入&#xff01;&#xff01;&#xff01; 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免…

python心理学实验程序_心理学实验程序编程(python)

任务一&#xff1a;实现简单的屏幕的颜色之间的切换 importpygamefrom pygame.locals import *pygame.init() win pygame.display.set_mode((800,600),DOUBLEBUF|HWSURFACE)for i in range(10): win.fill((0,255,0))if i%20: win.fill((255,0,0)) pygame.time.wait(500) pygame…

Hbase介绍

1、为什么出现hbase&#xff1f;hadoop 的NameNode适合大文件&#xff0c;不适合小文件。HDFS不适合大量小文件的存储&#xff0c;因namenode将文件系统的元数据存放在内存中&#xff0c;因此存储的文件数目受限于 namenode的内存大小。HDFS中每个文件、目录、数据块占用150Byt…

math 向上取整_自我说明:关于Math和File类的具体说明.

Math类:Math类&#xff0c;不允许有子类&#xff0c;它直接继承于object.Math类包含执行基本数字运算的方法.如基本指数&#xff0c;对数&#xff0c;平方根和三角函数.Math的基本方法&#xff1a;System.out.pintln(“1.绝对值&#xff1a;”Math.abs(16)”t”Math.abs(-16)”…