Re: [ js ] 關於.getLatLng的問題
※ 引述《atoi (atoi)》之銘言:
: 我嘗試要利用學校名稱去搜尋該校的經緯度
: 雖然用"校名"不一定可行,因為我查到的這個方式是要用地址
: 那我想說先試試看,但這不是重點,重點是
: 我寫的code會有一些問題
: 假設Universities[j][i]是存放校名,這變數的row是表示某一區
: 而column表示該區的一些學校,myGeocoder = new GClientGeocoder(); 這行寫過了
: 以下就是code的部分:
: for(var i = 0 ; i < Universities[j].length ; i++ )
: {
: myGeocoder.getLatLng( Universities[j][i], function(point)
: {
: if(!point)
: window.alert(Universities[j][i] + " not found");
: else
: {
: window.alert(Universities[j][i]);
: }
: }
: );
: }
: 而這個code跳出來的視窗裡面寫的都是同一個校名,而且都是該區的最後一個
: 學校,不知道是為什麼,可以請大家幫忙看看嗎,謝謝了
1.沒用過google maps api的人,天曉得GClientGeocoder,是什麼東西。
2.怕的話可以在for迴圈裡面加上 myGeocoder.setCache(null);
3.重點來了
這是ajax,我沒記錯的話,不可能有辦法預期哪一個geoencode會先完成。
換句話說你可能是abc三個學校照順序傳,但是他是完成就call你的function,
所以有可能是bca的順序叫到。
因此你根本不會知道第一個回傳的經緯度是不是真的是你第一個叫他做的地址。
4.你的i和j在你的callback裡面應該是看不到才對的。
callback function裡面只看得到point和Universities[]才對。
當然,我不知道你有沒有把i和j另外存放,不過看起來是沒有。
5.最後,這應該要去google版問吧? (雖然回文的我沒資格說就是=3=)
6.補充:方便的話附上完整code比較容易看出問題在哪,因為這code一看就是有問題。
7.不負責任猜測:八成是你有把i和j存起來,然後迴圈跑一次就存一次i和j,
所以大概你會跳出的都是最後一個學校。
--
到底是…
神創造了人? 相信上蒼,就別褻瀆神明!
________________________________________________________________________________
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
亦或是… 相信自己,就別妄自菲薄!
人創造了神?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.126.26
※ 編輯: lovelycateye 來自: 219.84.126.26 (05/24 01:38)
推
05/24 10:12, , 1F
05/24 10:12, 1F
討論串 (同標題文章)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章