1. 程式人生 > >已知一點的經緯度和該點到另一點的距離,求另一點的經緯度

已知一點的經緯度和該點到另一點的距離,求另一點的經緯度

剛做了將經緯度轉換成距離,現在又要弄將距離轉換成經緯度,哎!傷不起啊!

以下是將距離換算成經緯度,有誤差。 

           //將相對於起點的距離轉換為經緯度,distance代表到點的距離,angle代表方位角度
        private string ConvertDistanceToLogLat(float distance, string logLatPtStr, double angle)
        {
            string logLat = null;
            string[] temp_Arrary = logLatPtStr.Split(',');
            double lng1 = ConvertLongiToDouble(temp_Arrary[0].Replace("(",""));
            double lat1 = ConvertLongiToDouble(temp_Arrary[1].Replace(")",""));
            double lon = lng1 + (distance * Math.Sin(angle* Math.PI / 180)) / (111 * Math.Cos(lat1 * Math.PI / 180));//將距離轉換成經度的計算公式
            double lat = lat1 + (distance * Math.Cos(angle* Math.PI / 180)) / 111;//將距離轉換成緯度的計算公式
            string logStr = ConvertLogLatToString(lon);
            string latStr = ConvertLogLatToString(lat);
            logLat = "(" + logStr + "," + latStr + ")";
            return logLat;
        }


        //將double值轉換成度分秒字串
        private string ConvertLogLatToString(double lon)
        {
            string resut = null;

            string temp = lon.ToString();
            string[] du = temp.Split('.');
            resut += du[0] + "°";
            double fen = (lon - Convert.ToDouble(du[0])) * 60;
            string[] fen_Arrary = fen.ToString().Split('.');
            resut += fen_Arrary[0] + "′";
            if (fen_Arrary.Length > 1)
            {
                double second = Math.Round((fen - Convert.ToDouble(fen_Arrary[0])) * 60, 0);
                resut += second.ToString() + "″";
            }
            return resut;
        }

相關推薦

一點經緯度一點距離一點經緯度

剛做了將經緯度轉換成距離,現在又要弄將距離轉換成經緯度,哎!傷不起啊! 以下是將距離換算成經緯度,有誤差。             //將相對於起點的距離轉換為經緯度,distance代表到點的距離,angle代表方位角度         private string C

ip地址其子網掩碼如何網路號子網號主機號

已知ip地址為10.130.89.95,其子網掩碼為255.255.255.224,求其網路號、子網號和主機號。 要看子網掩碼變長在第幾節,255.255.255.224是在第四節借了位 把224轉換為2進位制,windows的計算器科學型能幫你計算。是1110000

兩點距離其中一點經緯度另外一點經緯度

所提供的程式碼有些問題:但下面還有其他方法的連結: https://stackoverflow.com/questions/7222382/get-lat-long-given-current-point-distance-and-bearing  已知兩點經緯度,求兩點間距離

在地球上A經緯度B經緯度算出AB之間的距離

public static void main(String[] args) { double earthR = 6371000;//地球大致半徑 double lat1 = aa.aaaa; //A的緯度 double lng1 = bb.bbbb;//A的經度

圓上三個座標圓半徑 r 圓心座標

問題: 已知圓上三個點座標分別為(x1,y1)、(x2,y2)、(x3,y3) 求圓半徑R和圓心座標(X,Y) X,Y,R為未知數,x1,y1,x2,y2,x3,y3為常數 則由圓公式: (x1-X)²+(y1-Y)²=R²     

數列的的增幅起始列結束列中間階梯數

圖片 分享圖片 公式 結束 com bubuko http nbsp 技術分享 求數列的的增幅,已知起始列和結束列,中間階梯數 已知 n1=2 n2=100 階梯=4 上面4個空列 每列增幅多少,正好填到100? 公式 (n2-n1)/(階梯+1) 為什

關於在某進制中存在乘法等式成立進製為幾進位制

 有 一個簡單的例子 1.在n進制中存在15*4=112,則n=  A  ; A.6   B.7   C.8  D.9 分析:在10進位制乘法中 例如15*4=60;13*5=65;23*7=161;1056*12=1

前序中序遍歷二叉樹

描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請輸出後序遍歷序列。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},重建二叉樹並返回後序遍歷序列 輸入 輸入

POJ-3243-Clever Y-擴充套件Bsgs演算法-acpa^b=c(mod p)b

【Description】 Little Y finds there is a very interesting formula in mathematics: XYmod Z=K X^Y mod\:Z=K XYmodZ=K

中序先序|後序建立二叉樹及三種方式遍歷

const int maxv= 10000+10; int n; int in_order[maxv],post_order[maxv],pre_order[maxv]; int lch[maxv],rch[maxv]; //左右子節點 int build1(int L1,

1119. Pre- and Post-order Traversals (30)【前序後序中序】

1119. Pre- and Post-order Traversals (30) 時間限制 400 ms 記憶體限制 65536 kB

1138. Postorder Traversal (25)【前序中序後序】

1138. Postorder Traversal (25) 時間限制 600 ms 記憶體限制 65536 kB 程式碼長度

置信區間(樣本均值樣本的方差總體均值的置信區間)(n < 30)

當樣本很小時 X¯¯¯服從T分佈 T ~ t(v) 樣本的數量為n時,v = n-1 T = (X¯¯¯ - μ)/(s/n√) 與上篇文章的置信區間相似,只不過c換成了t 置信區間取值範圍為(X¯¯¯ - t(v)*s/n√, X¯¯¯ + t

中序遍歷序列後序遍歷序列先序遍歷

通過中序遍歷和後序遍歷求先序 中序:BDCEAFHG 後序:DECBHGFA 求先序遍歷結果: 先求原始二叉樹 後序遍歷中最後出現的是根,所以A是整棵樹的根,在結合中序遍歷來看 BDCE是A的左子樹,而FHG是A的右子樹,所以我們就有了下面的圖:

二叉樹遍歷(中序按層遍歷先序 遞迴)

二叉樹遍歷(flist) 時間限制: 1000 ms         記憶體限制: 65536 KB 提交數: 8     通過數: 6  【題目描述】 樹和二叉樹基本上都有先序、中序、後序、按層遍歷等遍歷順序,給定中序和其它一種遍歷的序列就可以確定一棵二叉樹的結構。

二叉樹的中序後序遍歷排列前序遍歷

#include<iostream> #include<string> using namespace std; void Preorder(string inorder,string postorder) { if(inorder.size()&

主機 ip 子網掩碼計算這個主機所在網路的網路地址廣播地址的解法

小提示: * ip 地址為32位,每8位分成一組 * 128.14.35.7/20 /20表示前20位為網路字首,後32-20=12位為主機號,也就是說子網掩碼是255.255.240.0 即20個全1(二進位制),主機位全零的為網路地址,主機

C++ 兩點座標半徑圓心座標程式

已知圓上的兩點座標和半徑,求圓心。 數學分析:這個題目,涉及到簡單的數學問題,但是計算比較繁瑣。 假設已知圓上的兩點座標分別為N(X1,Y1)和M(X2,Y2),半徑為R,圓心座標為o(a,b),根據數學知識可得到: (x1-a)^2 + (y1-b)^2 = R^2---

C++裡三個三維他們的平面方程怎麼做?

已知三個點座標為P1(x1,y1,z1), P2(x2,y2,z2), P3(x3,y3,z3) 所以可以設方程為A(x - x1) + B(y - y1) + C(z - z1) = 0 (點法式) (也可設為過另外兩個點) 核心程式碼: //在此之前寫好錄入三個三維點

兩點座標半徑圓心座標程式C++

已知圓上的兩點座標和半徑,求圓心。數學分析:這個題目,涉及到簡單的數學問題,但是計算比較繁瑣。假設已知圓上的兩點座標分別為N(X1,Y1)和M(X2,Y2),半徑為R,圓心座標為o(a,b),根據數學知識可得到:(x1-a)^2 + (y1-b)^2 = R^2----(1