В приведенном коде я пытаюсь отобразить некоторые снимки, которые у меня есть в моей базе данных, как только я нажму на любой из маркеров на картах Google. Каждый маркер связан с изображением.Информационное окно при нажатии на маркер google maps ap
Моя проблема основана на последней части кода, в цикле las «for». Когда я console.log (контент), я вижу все мои теги изображений, отображаемые с правильным URL-адресом изображения, но когда я нажимаю на любой из маркеров, я вижу только последнее изображение на массиве picturesForMarkers. Кто-нибудь знает, что я делаю неправильно?
Javascript
var addresses = [];
var picturesForMarkers = [];
var divPictureLatitude = $('.pictures');
$.each(divPictureLatitude, function (i, val) {
addresses.push(val.children[1].value + ", " + val.children[2].value);
picturesForMarkers.push(val.children[0].src);
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (var x = 0; x < addresses.length; x++) {
$.getJSON('http://maps.googleapis.com/maps/api/geocode/json?address=' + addresses[x] + '&sensor=false', null, function (data) {
var p = data.results[0].geometry.location
var latlng = new google.maps.LatLng(p.lat, p.lng);
var marker = new google.maps.Marker({
position: latlng,
map: map
});
});
}
for (var x = 0; x < picturesForMarkers.length; x++) {
google.maps.event.addListener(marker, 'click', (function (marker, x) {
return function() {
var content = '<img src="' + picturesForMarkers[x] + '" style="width:300px;">';
console.log(content)
infowindow.setContent(content);
infowindow.open(map, marker);
}
})(marker, x));
}
Есть ли причина, вы используете [геокодирования веб-сервиса] (https://developers.google.com/maps/documentation/geocoding/), а не [Геокодер клиента API JavaScript Javascript API v3] (https://developers.google.com/maps/documentation/javascript/geocoding)? Обратите внимание, что эти службы геокодирования зависят от квоты и лимита скорости, они не будут работать более чем на 10 адресов за раз, не добавляя обработку ошибок, а затем будут чрезмерно медленными. – geocodezip
Нет, для этого нет особых причин. Я новичок в API карт google, поэтому я просто попробовал выполнить чужой код для части геокодирования, и он сработал. Но то, что вы говорите, имеет смысл, но я буду признателен, если вы поможете мне показать мне, как это исправить. – luisjar