2011-05-22 124 views
1

我有一個數據源的座標在以下格式。轉換座標爲可用

N642500,W0241600 
N660700,W0240000 
N652000,W0222700 
N660800,W0195500 
S645500,E0170800 
S644000,E0162200 

我不知道這些格式是什麼格式或如何將這些格式轉換爲我可以使用的格式。這可以是JavaScript或PHP!

+0

我覺得正則表達式是有用的,但在你希望他們是什麼格式? – pimvdb 2011-05-22 09:14:54

+0

分爲41.89028,12.49248例如 – 2011-05-22 09:17:15

回答

5

看起來像經度,緯度,分,秒(DMS)。有關轉換,請參閱http://www.ngs.noaa.gov/PC_PROD/Inv_Fwd/readme.htm

典型的地圖應用程序將採用十進制格式的經緯度,因此您需要將DMS轉換爲十進制(N爲+,S爲 - )。也就是說,我有些驚訝地發現谷歌地圖會直接帶DMS - 參見http://groups.google.com/group/Google-Maps-API/msg/670c54481d91e6b3?pli=1。所以你甚至不需要轉換它。例如:

51 57' 32.48",00 55' 55.23" 
http://maps.google.com/maps?f=q&hl=en&q=51++57%27+32.48%22,00+55%27+5... 

如果你需要計算它:

function DMS(lat,latm,lats,lon,lonm,lons) { 
    if (lat<0) { 
    latm = -latm; 
    lats = -lats; 
    } 
    if (lon<0) { 
    lonm = -lonm; 
    lons = -lons; 
    } 
    lat = lat + latm/60 + lats/3600; 
    lon = lon + lonm/60 + lons/3600; 
    return new GLatLng(lat,lon); 
} 
map.setCenter(DMS(35,3,39.08, -118,9,2.20)); 

http://groups.google.com/group/google-maps-api/msg/2e3436f3bf7d6155。但我認爲API應該直接採用。

+0

啊是的,然後我想W和S只需要被替換爲 - ?? – 2011-05-22 09:06:56

+0

您的數據源看起來像來自GPS設備的輸出。數據的目的地是什麼?你是否試圖在地圖上繪製它? – tofutim 2011-05-22 09:11:00

+0

是的,我的確如此。需要Google地圖可以理解的格式 – 2011-05-22 09:11:26

1

那些將是latitudelongitude。數據源的文檔應該告訴你單元是什麼;通常他們是度數(以各種分數形式),但是您需要知道給出的數字是否是度數或度數,分鐘和秒的小數部分。

在將它們轉換爲有用數字方面,這取決於它們是分數度數還是度數,分鐘數和秒數;以及你想要使用它們的內容。

+0

錯誤是的我知道他們是度,只是格式未知! – 2011-05-22 09:07:17

1

格式似乎是逗號分隔值(CSV)

值看起來像緯度(北+或南 - ) - 由ddmmss

我想跟着和經度(西+或東) ddmmss比十進制度更容易,因爲MM和SS位是小於59個

CNC中

經度的值必須是+/- 180(DDDMMSS),但爲緯度值需要+/- 90(DDMMSS)

+0

但它有一個額外的價值....更像ddmmsss(看第二列) – 2011-05-22 09:13:30

+0

但經度將高達三位數,以允許+/- 180 – pavium 2011-05-22 09:24:08

1

這個js函數將清潔您的字符串轉換爲已知的緯度經度的格式,使用示例:

clean('N51618017,W0248291'); 

非常簡單,所以這裏是函數

function clean(string){ 

var values = string.split(','), 
    lat, 
    lon; 

if(values[0].search(/S/)){ 
    lat = '-'; 
} 
if(values[1].search(/W/)){ 
    lon = '-'; 
} 

lat += values[0].substring(1, 3)+'.'+values[0].substring(4); 
lon += values[1].substring(1, 3)+'.'+values[1].substring(4); 

//now you got your values 

//so can do this: 
var url = 'http://www.gorissen.info/Pierre/maps/googleMapLocation.php?lat='+lat+'&lon='+lon+'&setLatLon=Set'; 

//or just return them as an object: 
pos = {name:'your pos name',latitude:lat,longitude:lon} 


}