作者hgft (yo~battle)
看板Ajax
標題Re: [問題] google map經緯度的問題
時間Tue Nov 15 08:31:51 2011
先感謝上次的大大指導我!!
不過這次又遇到一點問題
也查了一些資料
覺得這樣寫應該是沒錯的
<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
1F:推 musie:你有設global var 就直接lngia = point.x就好了 11/15 09:59
2F:推 LPH66:你沒有搞懂 callback function 執行的時機 11/15 10:13
3F:→ LPH66:內層的這個 function 也許會在之後才會執行 11/15 10:13
4F:→ LPH66:因此 map_init 可能會先結束 然後就執行了下面兩行 11/15 10:13
5F:→ hgft:有試過但是無法... 猜是google那邊鎖了什麼... 11/15 10:13
6F:→ LPH66:正確的方法就如一樓說的把這兩個變數的設定改在 callback 裡 11/15 10:14
7F:→ nehex:好像關鍵字是 Asynchronously 的部份吧 @@" 11/16 00:04