java經緯度格式轉換

2021-09-12 16:02:50 字數 1520 閱讀 6328

在數學中,表示角度的度、分、秒分別使用°、′、″符號進行表示。

1°=60′,1′=60″ ,1°=3600″。

由上述可知度分秒轉換度的計算公式為:(dd°mm′ss″) dd+mm/60+ss/3600

如:113°30′10.25″ = 113+30/60+10.25/3600 ≈113.502847

/**

* 經緯度轉換 ,度分秒轉度

* @param str

* @author cai_yf

* @return

*/public static string dms2d(string jwd)else if(jwd.contains("'"))

//不同單位的秒,可擴充套件

if(jwd.contains("″"))else if(jwd.contains("''"))

jwd = string.valueof(d+m/60+s/60/60);//計算並轉換為string

//使用bigdecimal進行加減乘除

/*bigdecimal bd = new bigdecimal("60");

bigdecimal d = new bigdecimal(jwd.contains("°")?jwd.split("°")[0]:"0");

bigdecimal m = new bigdecimal(jwd.contains("′")?jwd.split("°")[1].split("′")[0]:"0");

bigdecimal s = new bigdecimal(jwd.contains("″")?jwd.split("′")[1].split("″")[0]:"0");

//divide相除可能會報錯(無限迴圈小數),要設定保留小數點

jwd = string.valueof(d.add(m.divide(bd,6,bigdecimal.round_half_up)

.add(s.divide(bd.multiply(bd),6,bigdecimal.round_half_up))));*/

}return jwd;

}

執行結果

* 十進位制經緯度轉換 ddd°mm.mmmm 轉 ddd.ddddd°

* 如:112°30.4128 = 112.50688

* @param str

* @author cai_yf

* @return

*/ public static string dmturnd(string jwd)

return jwd;

}執行結果

有待完善。。。!

經緯度格式轉換

public float dufenmiaotodu float d,float f,float m public float dutodufen fen float d public float fentofenmiao miao float f float 有效數字位數 6 double 有效數...

經緯度座標轉換

經緯度與xy座標轉換工具類 public class latlngxyzconverthelper xy轉經緯度 需要轉換的x座標 需要轉換的y座標 地圖級別 轉換後的經度 轉換後的緯度 public static void tiletolatlng double tile x,double til...

NEMA資料經緯度轉換

一.gps模組在定位後會輸出含有各項定位資訊的 nmea語句,其中包括經緯度 資訊,例如串列埠輸出內容 gpgga,054514.000,2238.5260,n,11401.9686,e,1,7,1.27,89.2,m,2.3,m,7f gpgsa,a,3,08,23,10,28,09,04,02,...