把經緯度轉換成十進制


文章來自:http://hi.baidu.com/leo10086/item/37e528dd6e4d3d19d68ed03d

把經緯度轉換成十進制的方法很簡單 
如下就可以了
     Decimal Degrees = Degrees + minutes/60 + seconds/3600
例:57°55'56.6" =57+55/60+56.6/3600=57.9323888888888
114°65'24.6"=114+65/60+24.6/3600=結果自己算!

如把經緯度 (longitude,latitude) (205.395583333332,57.9323888888888)
轉換據成坐標(Degrees,minutes,seconds)(205°23'44.1",57°55'56.6")。
步驟如下:

1, 直接讀取"度":205

2,(205.395583333332-205)*60=23.734999999920 得到"分":23

3,(23.734999999920-23)*60=44.099999995200 得到"秒":44.1

采用同樣的方法可以得到緯度坐標:57°55'56.6"

如果需要轉換的經緯度數據很多,可以借助Sql查詢分析器或Excel來進行轉換。這里介紹用Sql實現。
假如我的數據庫里的表tableName有以下數據

CREATE TABLE [dbo].[tableName](
[ID] [int] IDENTITY(1,1) NOT NULL,
[address] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[longitude] [float] NULL,
[latitude] [float] NULL
) ON [PRIMARY]

GO

表中的數據
ID address longitude latitude 
0 add1 205.3955833 57.93238889 
1 add2 205.3911111 57.95194444 
2 add3 205.3791667 57.98916667 
3 add4 205.3713889 57.95611111

在sql 查詢分析器里直接調用以下查詢語句

--Declare The longitude,latitude
declare @LoaDeg varchar(50)
declare @LoaMin varchar(100)
declare @LoaSec varchar(100)
declare @LatDeg varchar(50)
declare @LatMin varchar(100)
declare @LatSec varchar(100)
--Set The Variable

Set @LoaDeg='left(longitude,3)'
Set @LoaMin='left((
Set @LoaSec='left((((
Set @LatDeg='left(longitude,3)'
Set @LatMin='left((
Set @LatSec='left((((
--Execute The Command
exec('select ID,address,longitude,
as LoaDegree,
as LoaMinute,
as LoaSecond
,
as LatDegree,
as LatMinute,
as LatSecond
from TableName')

即可得到:
ID address longitude LoaDegree LoaMinute LoaSecond latitude LatDegree LatMinute LatSecond
1 add1 205.3955833 205 23 44 57.93238889 205 23 44
2 add2 205.3911111 205 23 28 57.95194444 205 23 28
3 add3 205.3791667 205 22 45 57.98916667 205 22 45
4 add4 205.3713889 205 22 17 57.95611111 205 22 17


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM