我有一個數據源的座標在以下格式。轉換座標爲可用
N642500,W0241600
N660700,W0240000
N652000,W0222700
N660800,W0195500
S645500,E0170800
S644000,E0162200
我不知道這些格式是什麼格式或如何將這些格式轉換爲我可以使用的格式。這可以是JavaScript或PHP!
我有一個數據源的座標在以下格式。轉換座標爲可用
N642500,W0241600
N660700,W0240000
N652000,W0222700
N660800,W0195500
S645500,E0170800
S644000,E0162200
我不知道這些格式是什麼格式或如何將這些格式轉換爲我可以使用的格式。這可以是JavaScript或PHP!
看起來像經度,緯度,分,秒(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應該直接採用。
啊是的,然後我想W和S只需要被替換爲 - ?? – 2011-05-22 09:06:56
您的數據源看起來像來自GPS設備的輸出。數據的目的地是什麼?你是否試圖在地圖上繪製它? – tofutim 2011-05-22 09:11:00
是的,我的確如此。需要Google地圖可以理解的格式 – 2011-05-22 09:11:26
格式似乎是逗號分隔值(CSV)
值看起來像緯度(北+或南 - ) - 由ddmmss
我想跟着和經度(西+或東) ddmmss比十進制度更容易,因爲MM和SS位是小於59個
CNC中
經度的值必須是+/- 180(DDDMMSS),但爲緯度值需要+/- 90(DDMMSS)
但它有一個額外的價值....更像ddmmsss(看第二列) – 2011-05-22 09:13:30
但經度將高達三位數,以允許+/- 180 – pavium 2011-05-22 09:24:08
這個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}
}
我覺得正則表達式是有用的,但在你希望他們是什麼格式? – pimvdb 2011-05-22 09:14:54
分爲41.89028,12.49248例如 – 2011-05-22 09:17:15