Re: [問題] google map經緯度的問題

看板Ajax作者 (yo~battle)時間14年前 (2011/11/15 08:31), 編輯推噓2(205)
留言7則, 4人參與, 最新討論串3/3 (看更多)
先感謝上次的大大指導我!! 不過這次又遇到一點問題 也查了一些資料 覺得這樣寫應該是沒錯的 <body> <span id=lat></span><br /> <span id=lng></span><br /> <script type="text/javascript"> <?php $ans=$_GET['which']; ?> var lngia; var latia; map_init("<?php echo $ans;?>"); //$ans為某個地址 function map_init(a) { if( !GBrowserIsCompatible() ) return; var geocoder = new GClientGeocoder(); var address = a; geocoder.getLatLng( address, function(point) { if (point) { var lngi = point.x; var lati = point.y; $("#lng").html(lngi); $("#lat").html(lati); } } ); } lngia = $("#lng").html(); //問題在此!! latia = $("#lat").html(); alert(lngia); </script> </body> 網頁確實是有顯示我所要的資料 但最後的lngia仍然拿不出來... 想請問這樣的寫法難道有問題嗎...? 感激不盡!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.39.17.211

11/15 09:59, , 1F
你有設global var 就直接lngia = point.x就好了
11/15 09:59, 1F

11/15 10:13, , 2F
你沒有搞懂 callback function 執行的時機
11/15 10:13, 2F

11/15 10:13, , 3F
內層的這個 function 也許會在之後才會執行
11/15 10:13, 3F

11/15 10:13, , 4F
因此 map_init 可能會先結束 然後就執行了下面兩行
11/15 10:13, 4F

11/15 10:13, , 5F
有試過但是無法... 猜是google那邊鎖了什麼...
11/15 10:13, 5F

11/15 10:14, , 6F
正確的方法就如一樓說的把這兩個變數的設定改在 callback 裡
11/15 10:14, 6F

11/16 00:04, , 7F
好像關鍵字是 Asynchronously 的部份吧 @@"
11/16 00:04, 7F
文章代碼(AID): #1EmRBvQI (Ajax)
文章代碼(AID): #1EmRBvQI (Ajax)