全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5999
推到 Plurk!
推到 Facebook!

關於pda 連到自製網頁有嵌入google map

答題得分者是:TWY
huang_ying_ming
一般會員


發表:10
回覆:14
積分:4
註冊:2009-08-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-09-15 22:13:00 IP:140.130.xxx.xxx 訂閱
下面是我用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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-09-16 09:06:01 IP:211.21.xxx.xxx 訂閱
我前陣子玩過 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 第二個參數的回呼函式,生命可見範圍當然只局限於該函式內,我想這是所有語言皆一致的特性與規則。

有些時間沒碰了,以上僅供參考~






編輯記錄
TWY 重新編輯於 2009-09-16 09:11:07, 註解 無‧
TWY 重新編輯於 2009-09-16 09:13:46, 註解 無‧
huang_ying_ming
一般會員


發表:10
回覆:14
積分:4
註冊:2009-08-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-09-16 09:35:34 IP:140.130.xxx.xxx 訂閱
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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-09-16 10:14:53 IP:211.21.xxx.xxx 訂閱
抱歉,我的重點在於表達從 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-09-16 12:46:39 IP:140.130.xxx.xxx 訂閱
紅色那段是我加的,我加這樣好像錯誤 是我加錯嗎?        
http://maps.google.com/maps?file=api&v=2&key=ABQIAAAApAPQGFkb0P7xKC3m_Il3fhQ31H6ma3JughTHAqunYmuT2zRvARR-4vGG_tSNzCJiDOamvRLV3SeWAQ">http://maps.google.com/maps?file=api&v=2&key=ABQIAAAApAPQGFkb0P7xKC3m_Il3fhQ31H6ma3JughTHAqunYmuT2zRvARR-4vGG_tSNzCJiDOamvRLV3SeWAQ>"
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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-09-16 13:44:41 IP:211.21.xxx.xxx 訂閱
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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-09-16 15:51:15 IP:140.130.xxx.xxx 訂閱
有出來了,上課回來就ok了 ,有鬼檔強的感覺,謝謝你的教導
===================引 用 TWY 文 章===================
1. 你沒舉出錯誤地方與訊息,我也不曉得哪邊也錯喔。我個人喜歡用 Google Chrome 瀏覽器,他的「開發人員選項」->「JavaScript 控制台」提供很好的除錯資訊與分析
2. 底下為 document.getElementById 簡單範例你參考一下

系統時間:2024-04-26 1:24:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!