看板 Ajax 關於我們 聯絡資訊
簡單說一下0.0 就是 有很多的marker 每個marker搭配一個infowindow 加上一個event 但是好像event好像聽不到或是找不到要搭配哪個infowindow囧 程式碼如下 function gettestlatlngMarkers(n) { var marker = []; var image = './16px/xxx.png'; for (var i = 0; i < n.length; ++i) { var tempLatlng = new google.maps.LatLng( n[i]['pointlat'], n[i]['pointlng']); var contentString = '123'; var markers = new google.maps.Marker({ position: tempLatlng, title: n[i]['name'], icon: image }); infowindow = new google.maps.InfoWindow({ content: contentString, size: new google.maps.Size(200,200) }); google.maps.event.addListener(markers, 'click', function() { markers = this;//加上這行就OK了= = if (infowindow) infowindow.close(); infowindow.open(map, markers); }); marker.push(markers); ); } return marker; } 就我的理解應該是把marker push到陣列裡面 但是infowindow跟event好像沒有跟上 請問要怎麼改呢>"< -- ▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄ ▄▄▄▄▄▄▄ ▄ ▄ ▄▄ くっくっくっ.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.112.15 ※ 編輯: timmy852111 來自: 59.126.112.15 (01/04 13:59)
amos6064:官網api說的已經很詳細了你嘗試把你的marker用全域 01/04 15:15
amos6064:我event control沒問題 01/04 15:16
amos6064:function再用一個物件跟全域綁定記住要控制一下unbind 01/04 15:17
更正一下 現在event已經可以聽到了 可是點出來的infowindow都是最後一筆= = 程式碼直接改在上面了 我不管點哪個點 永遠都是最後一筆的那個點彈跳出infowindow囧 有把event拆掉 直接open infowindow是正常的 所有點都可以產生正確的window 所以有問題的應該是 event那行 ※ 編輯: timmy852111 來自: 59.126.112.15 (01/04 16:18)
amos6064:沒仔細看程式碼~marker.push(markers);放到listener前面 01/04 18:02
amos6064:MarkerClusterer你可以看看這個 01/04 18:02
timmy852111:MarkerClusterer我有用過 不過好複雜囧 01/04 18:35
timmy852111:現在是用marker manager 01/04 18:35
amos6064:http://0rz.tw/EDNm7這邊有MarkerClusterer範例,可以參考 01/04 19:11
※ 編輯: timmy852111 來自: 59.126.112.15 (01/06 09:53)