已知一點經緯度,方位角,距離,求另一點經緯度

參考了博文: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.pswp.cn/news/538661.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538661.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538661.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機一級excel如何選擇2個,2017年計算機一級excel操作題(2)

(3)建立和編輯圖表選擇工作簿中需要編輯的表單,為其添加圖表,其具體操作如下:步驟1選取“電腦城日出貨統計表”的“配件”和“所占比例”兩列,選擇【插入一圖表】命令,在彈出的“圖表向導”對話框“標準類型”的“圖表…

python的基本語術_一起學python-徹底掌握專業術語“變量”的概念

昨天分享了笨方法學習編程,今天就讓我們通過實戰來接觸python,掌握專業術語“變量”的概念吧 python 中的變量的基本概念和初中代數的方程式X的概念是一樣的,只是在計算機程序當中這個X不僅僅可以代表一個數字,還可以代表一段文字…

lamp自動部署工具_Linux一鍵配置工具ezhttp介紹

簡介: ezhttp是一個Linux一鍵配置工具,采用bash腳本語言編寫。支持自動配置LAMP,LNMP,LNAMP環境,以前提供各種其它的配置工具,如自動配置swap,配置iptables等。項目托管在github,地址為https://github.com/centos-bz/e…

Maven錯誤

1、軟件包javax.servlet不存在 解決辦法: 從tomcat lib目錄下拷貝一個servlet-api.jar的包到“JDK\jre\lib\ext”目錄下 凡是出現找不到包的情況,都可以將找到的包放到JDK\jre\lib\ext下,然后再編譯就能夠通過。 有方法是在pom.xml中引用s…

我對計算機感興趣作文300字,我想對電腦游戲說作文300字

電腦游戲呀!電腦游戲呀!我知道你被人們創造出來,是想給人們帶來快樂,可你也給人們帶來了不少煩惱呀!你可知道,自從爸爸迷上了你,就像是變了一個人似的……每天清晨,天還蒙蒙亮&#…

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>…

PHP 開啟或關閉錯誤提示

如果不具備修改 php.ini 的權限&#xff0c;可以如下&#xff1a; // 只需在php文件中加入這兩句即可開啟PHP錯誤提示ini_set("display_errors", "On"); error_reporting(E_ALL | E_STRICT); 如果具備修改 php.ini 權限的話&#xff0c;如下即可&#xff…

python 無頭模式_Python + Selenium(二十五)無頭模式 headless

所謂瀏覽器的無頭模式headless&#xff0c;就是瀏覽器在運行時處于后臺操作的模式&#xff0c;不會看到瀏覽器打開&#xff0c;也就不會干擾你手頭的工作。對于自動化測試和網絡爬蟲都有很大的價值。早期我們使用 phantomJS 瀏覽器來實現這種模式&#xff0c;隨著 Chrome 和 Fi…

計算機函數兩個表格找相同,wps篩選出兩個表格中的重復項(countif 函數簡單使用)【已解決】...

假設&#xff0c;有以下兩個表格文件。為了掩飾&#xff0c;數據就幾個。AB兩個表格&#xff0c;現在要做的是從A表格中&#xff0c;去除跟B表格重復的內容&#xff0c;只保留剩余的數據。第一步&#xff0c;先把B表格中的 蔬菜名稱 那一列&#xff0c;復制到A表格中。(如果數據…

區分 JSON 字符串與JSON對象

&#xff08;1&#xff09;JSON 對象是滿足 JSON 數據格式的 JS 對象例如&#xff1a; {name:"abc"}最正規的 JSON 數據是連屬性名稱都要被包括起來的例如&#xff1a; {"name":"abc"}&#xff08;2&#xff09;JSON 格式的字符串的關鍵問題-- 它…

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…

shell 進入hadoop_Hadoop關于HDFS的基本操作(Shell命令)

在這里我給大家繼續分享一些關于hdfs分布式文件的經驗哈&#xff0c;其中包括一些hdfs的基本的shell命令的操作&#xff0c;再加上hdfs java程序設計。在前面我已經寫了關于如何去搭建hadoop這樣一個大數據平臺&#xff0c;還沒搭好環境的童鞋可以轉到我寫的這篇文章hadoop在ub…

材料凝固計算機模擬,金屬基復合材料凝固過程計算機模擬Ⅲ.pdf

金屬基復合材料凝固過程計算機模擬Ⅲ,金屬基復合材料,金屬復合材料,金屬陶瓷復合材料,金屬基復合材料ppt,金屬基復合材料導論,無機非金屬基復合材料,雙金屬復合材料,金屬基陶瓷復合材料,金屬基復合材料的應用第 卷第 期"" $ 南方冶金學院學報 W;(#""VB;#$年…