關於pda 連到自製網頁有嵌入google map |
答題得分者是:TWY
|
huang_ying_ming
一般會員 ![]() ![]() 發表:10 回覆:14 積分:4 註冊:2009-08-21 發送簡訊給我 |
下面是我用javascript嵌入google map,然後我想問的是point,因為point為經緯度,如何利用dom傳值給jsp的隱藏表單
我有試過上面用告變數,但是point似乎只能用在"geocoder.getLatLng(address, function(point) {}"裡面,如果在它外面的話 point會被定義成未定義變數 [code xml] http://maps.google.com/maps?file=api&v=2&key=ABQIAAAApAPQGFkb0P7xKC3m_Il3fhQ31H6ma3JughTHAqunYmuT2zRvARR-4vGG_tSNzCJiDOamvRLV3SeWAQ" type="text/javascript"> function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); var geocoder = new GClientGeocoder(); var address = "<%=rs.getString("LOCATION")%>"; map.addControl(new GSmallMapControl()); geocoder.getLatLng(address, function(point) { if (!point) { alert('Google Maps 找不到該地址,無法顯示地圖!'); //如果Google Maps無法顯示該地址的警示文字 } else { map.setCenter(point, 16); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindowHtml(html); } }); } } [/code] 編輯記錄
huang_ying_ming 重新編輯於 2009-09-16 03:12:30, 註解 無‧
|
TWY
高階會員 ![]() ![]() ![]() ![]() 發表:2 回覆:133 積分:152 註冊:2009-09-02 發送簡訊給我 |
我前陣子玩過 Google Map API,不過現在 NB 沒有環境,所以以下資訊提供方向參考,要請你自己 Try 一下~
Q1. 因為 point 為經緯度,如何利用 dom 傳值給 jsp 的隱藏表單? A1. 這個問題應該等同於如何利用 dom 把值從 JavaScript 傳給 dom object 吧? 若利用標準 document 寫法,試試 document.getelementById("edtLatitude").value = point.la; (edtLatitude 是 HTML 輸入項 ID, point.la 則是 JS 裡面的物件值) 若你喜歡使用 prototype 的話,可簡寫為 $F('edtLatitude') = point.la; Q2. 但是point似乎只能用在"geocoder.getLatLng(address, function(point) {}"裡面,如果在它外面的話 point會被定義成未定義變數 A2. 看你的 Code,point 為 geocoder.getLatLng 第二個參數的回呼函式,生命可見範圍當然只局限於該函式內,我想這是所有語言皆一致的特性與規則。 有些時間沒碰了,以上僅供參考~ |
huang_ying_ming
一般會員 ![]() ![]() 發表:10 回覆:14 積分:4 註冊:2009-08-21 發送簡訊給我 |
document.getelementById("edtLatitude").value = point.la;
我想請問一下那個point.la跟google map的point有關嗎 ===================引 用 TWY 文 章=================== 我前陣子玩過 Google Map API,不過現在 NB 沒有環境,所以以下資訊提供方向參考,要請你自己 Try 一下~ Q1. 因為 point 為經緯度,如何利用 dom 傳值給 jsp 的隱藏表單? A1. 這個問題應該等同於如何利用 dom 把值從 JavaScript 傳給 dom object 吧? 若利用標準 document 寫法,試試 document.getelementById("edtLatitude").value = point.la; (edtLatitude 是 HTML 輸入項 ID, point.la 則是 JS 裡面的物件值) 若你喜歡使用 prototype 的話,可簡寫為 $F('edtLatitude') = point.la; |
TWY
高階會員 ![]() ![]() ![]() ![]() 發表:2 回覆:133 積分:152 註冊:2009-09-02 發送簡訊給我 |
抱歉,我的重點在於表達從 JS 將值傳給DOM 語法(等號左邊),所以等號右邊就只打個代表意思的字,沒想到讓你疑惑了。
point.la 的意思是緯度座標值,當然若你直接這樣打應該會有錯誤,因為不是 Google Map 合法的寫法。 不過可以確定的是你可以先這樣試 point.toString() 代表座標位置描述字串,語法合法了且可傳出去了,在修正為真正欲取得的資料。 官網 API 說明很豐富,別忘了回來查查~ http://code.google.com/intl/zh-TW/apis/maps/documentation/reference.html 造成困擾請多包含,很久沒寫了... ===================引 用 huang_ying_ming 文 章=================== document.getelementById("edtLatitude").value = point.la; 我想請問一下那個point.la跟google map的point有關嗎 |
huang_ying_ming
一般會員 ![]() ![]() 發表:10 回覆:14 積分:4 註冊:2009-08-21 發送簡訊給我 |
紅色那段是我加的,我加這樣好像錯誤 是我加錯嗎?
type="text/javaforbidden"> function load() { if (GBrowserIsCompatible()) { var map = new GMap2(document.getElementById("map")); var geocoder = new GClientGeocoder(); var address = "<%=rs.getString("LOCATION")%>"; map.addControl(new GSmallMapControl()); geocoder.getLatLng(address, function(point) { document.getElementById("tt").value=point.toString(); if (!point) { alert('Google Maps 找不到該地址,無法顯示地圖!'); //如果Google Maps無法顯示該地址的警示文字 } else { map.setCenter(point, 16); var marker = new GMarker(point); map.addOverlay(marker); marker.openInfoWindowHtml(html); } }); } } ===================引 用 TWY 文 章=================== 抱歉,我的重點在於表達從 JS 將值傳給DOM 語法(等號左邊),所以等號右邊就只打個代表意思的字,沒想到讓你疑惑了。 point.la 的意思是緯度座標值,當然若你直接這樣打應該會有錯誤,因為不是 Google Map 合法的寫法。 不過可以確定的是你可以先這樣試 point.toString() 代表座標位置描述字串,語法合法了且可傳出去了,在修正為真正欲取得的資料。 官網 API 說明很豐富,別忘了回來查查~ http://code.google.com/intl/zh-TW/apis/maps/documentation/reference.html |
TWY
高階會員 ![]() ![]() ![]() ![]() 發表:2 回覆:133 積分:152 註冊:2009-09-02 發送簡訊給我 |
1. 你沒舉出錯誤地方與訊息,我也不曉得哪邊也錯喔。我個人喜歡用 Google Chrome 瀏覽器,他的「開發人員選項」->「Java Script 控制台」提供很好的除錯資訊與分析
2. 底下為 document.getElementById 簡單範例你參考一下 [code xml] <html><br /><body><br /> <input id="txtInput" type="text" value="Hello"><br /> <input type="button" ><br /></body><br /></html><br /> <!-- function _Test() { //第一次按下按鈕, txtInput 輸入項的值會由『Hello』變成『Hello World』 //這一行指令展示了利用 document.getElementById(idName).value 同時可用來讀取與寫入值 document.getElementById("txtInput").value = " World"; } //--> [/code] 3. 你把你的 Code document.getElementById("tt").value=point.toString(); 改成 document.getElementById("tt").value= "Test 1223"; 並放到 else 區段試試看 |
huang_ying_ming
一般會員 ![]() ![]() 發表:10 回覆:14 積分:4 註冊:2009-08-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |