|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
fgtsai0418
註冊時間: 2013-07-09 文章: 6
第 1 樓
|
發表於: 星期五 七月 12, 2013 11:11 pm 文章主題: 求助google map codeaddress問題 |
|
|
之前google map需要的座標格式為 22.601914,120.283186 ,需分為兩欄
但是我現在機器能提供給我的是"22 35.097' N,120 18.623' E"這樣的格式
所以我想透過codeaddress的語法來讀他,可是一直無法成功,請問有人能協助嗎?
function load(User_Id) {
var map = new google.maps.Map(document.getElementById("map_canvas"), {
center: new google.maps.LatLng(22.601914,120.283186),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infoWindow = new google.maps.InfoWindow;
var geocoder = new google.maps.Geocoder();
// Change this depending on the name of your PHP file
downloadUrl("db_2_xml.php?id="+User_Id, function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("markers");
for (var i = 0; i < markers.length; i++) {
var vessel = markers[i].getAttribute("vessel");
var geocoder = new google.maps.Geocoder(
geocoder.geocode(markers[i].getAttribute("GPS")));
/*
var pointss = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
*/
var speed = markers[i].getAttribute("speed");
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: geocoder,
icon: icon.icon,
shadow: icon.shadow
});
bindInfoWindow(marker, map, infoWindow, html);
}
});
// Change this depending on the name of your PHP file
// Draw a polyline
downloadUrl("db_2_xml.php?id="+User_Id, function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("markers");
var path = [];
for (var i = 0; i < markers.length; i++) {
var lat = floatval (markers[i].getAttribute("gps"));
// var lng = parseFloat(markers[i].getAttribute("lng"));
var point = new google.maps.LatLng(lat,lng);
path.push(point);
}//finish loop
var polyline = new google.maps.Polyline({
path: path,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
polyline.setMap(map);
mysql_free_result($result); // 釋放佔用的記憶體
mysql_close($link); // 關閉連結
}); //end download url
}
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {} |
|
回頂端 |
|
|
elleryq
註冊時間: 2007-06-21 文章: 768
第 2 樓
|
發表於: 星期二 七月 16, 2013 4:30 pm 文章主題: |
|
|
要做轉換,你可以參考這篇 http://blog.xuite.net/lwkntu/blog/13586958
你要把度分秒轉換成十進位
引言回覆: |
●度分秒換算為十進位:
(a)經度(longitude):
20.8/60/60 = 0.005777778
32/60 = 0.533333333
121 = 121
∴ 121 + 0.533333333 + 0.005777778 = 121.539111
Ans. E 121.539111
(b)緯度(latitude):
2.4/60/60 = 0.000666667
1/60 = 0.016666667
25 = 25
∴ 25 + 0.016666667 + 0.000666667 = 25.01733333
Ans. N 25.01733333
|
|
|
回頂端 |
|
|
fgtsai0418
註冊時間: 2013-07-09 文章: 6
第 3 樓
|
發表於: 星期三 七月 17, 2013 8:26 am 文章主題: |
|
|
似乎 有那麼一點
我不太知道如何能把mysql的欄位資料讀出來,經過運算,再放回去同一列裡面@@ |
|
回頂端 |
|
|
elleryq
註冊時間: 2007-06-21 文章: 768
第 4 樓
|
發表於: 星期三 七月 17, 2013 9:59 pm 文章主題: |
|
|
就在 javascript 裡運算就好了啊
代碼: |
var lat = floatval (markers[i].getAttribute("gps"));
var lng = parseFloat(markers[i].getAttribute("lng"));
// 運算...運算式自己寫,應該不難
var new_lat = ...;
var new_lng = ...;
var point = new google.maps.LatLng(new_lat, new_lng);
|
|
|
回頂端 |
|
|
fgtsai0418
註冊時間: 2013-07-09 文章: 6
第 5 樓
|
發表於: 星期三 七月 17, 2013 10:30 pm 文章主題: |
|
|
好滴!! 我研究看看
謝謝啦 |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|