đây là mã của tôi trong html để tạo điểm đánh dấu và infowindow (với Ruby on Rails)GoogleMaps InfoWindow xuất hiện ở một góc
var marker=[]
function initMap() {
var latLng1 = new google.maps.LatLng(1.352083, 103.819836);
var myOptions = {
zoom: 12,
center: latLng1,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
for(i=0;i<gon.astatic.length;i++){
var latLng = new google.maps.LatLng(gon.astatic[i][1], gon.astatic[i][2]);
if(i<2){
marker[i] = new MarkerWithLabel({position: latLng, map: map,icon:"/assets/green_MarkerV.png" ,labelClass: "labels",labelContent: gon.astatic[i][3]});}
else
{
marker[i] = new MarkerWithLabel({position: latLng, map: map,icon:"/assets/green_MarkerN.png" ,labelClass: "labels",labelContent: gon.astatic[i][3]});
}
var iw =new google.maps.InfoWindow({content: 'HI' });
google.maps.event.addListener(marker[i],"mouseover",function(e){iw.open(map,marker[i]);})
}
này gon chỉ là một số phương pháp 'ngu ngốc' Tôi sử dụng để truyền dữ liệu từ ruby trên điều khiển ray đến javascript.
cho tất cả điểm đánh dấu, infowindow tất cả xuất hiện ở góc. Nhưng đối với bản đồ khác của tôi (chỉ có một điểm đánh dấu với infowindow) nó hoạt động tốt.
Điều gì có thể là vấn đề của tôi? Tại sao infowindow này xuất hiện ở vị trí sai? Thay vì chỉ ở trên điểm đánh dấu?
EDIT:
Sau buổi chụp rắc rối nửa ngày, tôi cảm thấy vấn đề là ở
google.maps.event.addListener(marker[i],"mouseover",function(e){iw.open(map,marker[i]);})
khi nghe gọi lại, giá trị bên trong dấu là i, mà không phải là một con số thực tế , do đó, các điểm đánh dấu hiển thị ở một góc. Tôi cảm thấy vấn đề là không thể vượt qua biến vào addListener, chỉ có thể đặt trong số thực tế. Làm thế nào để giải quyết điều này?
Cảm ơn bạn ~ liên kết của bạn là giúp đầy đủ, nhưng cửa sổ thông tin của tôi cú pháp giống như liên kết này, và các infowinds hoạt động tốt cho điểm đánh dấu duy nhất. Tôi nghĩ là một số vấn đề nội bộ? –