Projem, belirli bir enlem ve boylam sınırı içinde depremlerle ilgili bilgi almak için bir JSON feed'i kullanıyor. Bu bilgileri alıyorum ve tüm sonuçları bir Google haritasındaki işaretleyicilere dönüştürüyorum. Ayrıca bazı ek bilgileri görüntülemek için her bir işaretçiye ihtiyacım var, bu yüzden yerleşik bir InfoWindow nesnesini kullanmaya çalışıyorum; bir işaretçiyi tıkladığınızda, bu işaretçiye ilişkin bazı bilgilerle araç ipucunu açarsınız. Bununla birlikte, hangi işaretleyiciyi tıklattığımı fark etmediğimi, aynı grubun daima o grubun aynı işaretçisinin üzerine çıktığını ve bunun her zaman benim döngümde yarattığım son noktanın olduğuna inanıyorum. İşte kod.Birden çok InfoWindows'ı bir Google Map üzerinde birden fazla İşaretçiye bağlamak ve başarısız olmak için çalışıyor.
$.getJSON(url, function(json) {
for(var i = 0; i < json.earthquakes.length; i++)
{
var pos = new google.maps.LatLng(json.earthquakes[i].lat, json.earthquakes[i].lng);
var info = json.earthquakes[i].lat + ", " + json.earthquakes[i].lng;
var marker = new google.maps.Marker({
map: map,
position: pos,
title: json.earthquakes[i].eqid
})
var tooltip = new google.maps.InfoWindow({
content: info
})
google.maps.event.addListener(marker, 'click', function() {
tooltip.open(map, marker);
});
markers.push(marker);
tooltips.push(tooltip);
}
});
belirteçler harita ve ipuçları tüm işaretleyici nesneler için bir dizi infowindows nesneleri depolamak için bir dizidir. Onlar küresel.
Bu kapanışları işi (işaretleyici kapanmasına referans olarak geçirilir, ne isteyeyim bir kopyasıdır) nasıl kaynaklanmaktadır. Fakat dinleyici çağrıldığında, dinleyicinin eklendiği nesneyi (işaretçiyi) işaret eden “bu” ile olacaktır, böylece 'marker' yerine' this' kullanabilirsiniz. – herman