
標題: google map api 地理定址(codeAddress)問題 [打印本頁]
作者: keith222 時間: 2011-9-3 16:47 標題: google map api 地理定址(codeAddress)問題
最近在寫關於google map api 的應用 在途中遇到一個問題 困擾了許久 希望版上的前輩們
可以幫忙提點一下
http://code.google.com/intl/zh-TW/apis/maps/documentation/javascript/services.html#GeocodingStatusCodes
目前在寫的功能 有使用到上面網址所提到的 codeAddress 的部分
但卻遇到一個奇怪的問題
我的寫法是先將所有要轉換的地點名稱存成陣列然後再傳到到 codeAddress()函數裡
但卻奇怪的的事 產生的點的順序卻是亂跳 而不是依照陣列所存的順序產生 不曉得是哪邊出了問題
//這邊是將陣列送到 codeaddress()函數的地方
function pre_code(){
<?
for($i=1;$i<=$days;$i++){
$place_num[$i] = sizeof($place[$i]);
for($j=0;$j<$place_num[$i];$j++){
echo 'codeAddress("'.$place[$i][$j].'");';
}
}
}
?>
};
//這邊就是codeAddress 函數本體
function codeAddress(place) {
//alert(place) 這邊alert 確認順序 則正常
if (geocoder) {
geocoder.geocode( { 'address': place}, function(results, status) {
//alert(place)在這邊alert 來確認就發現順序亂掉
map.setCenter(results[0].geometry.location);
//results[0].geometry.location 為地點經緯度
map.setZoom(12);
addMarkandPolyline(results[0].geometry.location,place);
});
}
}
作者: wmh 時間: 2011-9-4 00:25
這是透過 AJAX 去 google maps 查詢的,再透過 callback 來處理顯示的部份。
由於每個 request 都是非同步的,所以回應的順序和你發出的順序未必會相同喔~
作者: keith222 時間: 2011-9-4 00:47
那... 要如何做才能達到同步的效果
還是就...無法了呢?
這個順序的問題著實困擾了很久
作者: wmh 時間: 2011-9-4 01:59
就先做第一個,在 callback function 內再做下一個,直到結束為止。這樣就可以照順序了~
作者: keith222 時間: 2011-9-4 22:55
那個....
感到真不好意思...
對於您說的那個callback function 還是有點不太了解它的運作方式
不曉得能否提供一個簡單的範例呢?
歡迎光臨 jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化 (http://jsgears.com/) |
|