返回列表 發帖

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);
                                        
                              });
                    }
                  }

這是透過 AJAX 去 google maps 查詢的,再透過 callback 來處理顯示的部份。
由於每個 request 都是非同步的,所以回應的順序和你發出的順序未必會相同喔~
To infinity and beyond!

TOP

那... 要如何做才能達到同步的效果
還是就...無法了呢?
這個順序的問題著實困擾了很久

TOP

就先做第一個,在 callback function 內再做下一個,直到結束為止。這樣就可以照順序了~
To infinity and beyond!

TOP

那個....
感到真不好意思...
對於您說的那個callback function 還是有點不太了解它的運作方式
不曉得能否提供一個簡單的範例呢?

TOP

返回列表 回復 發帖