Я пытаюсь добавить несколько маркеров. Данные получаются из базы данных и передаются в функцию 'initMap', затем карта и маркер отображаются правильно, но проблема в , поскольку цикл работает неправильно .I имеют два местоположения, но показывают только одно местоположение (последнее местоположение) .
function initMap(post_obj) {
//*** json object convert to JS array
var columns = ['longitude', 'latitude', 'placeName', 'phoneNo'];
var locations = JSON.parse(post_obj).map(function(obj) {
return columns.map(function(key) {
return obj[key];
});
});
var mapProp= {
center:new google.maps.LatLng(7.8731,80.7718), //locate Sri Lanka
zoom:7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
styles: [{
featureType: 'all',
stylers: [
{saturation: -100}, //Grey Color map
{gamma: 0.50},
]
}]
};
var map = new google.maps.Map(document.getElementById("map_canvas"),mapProp);
var marker, i;
var infowindow = new google.maps.InfoWindow();
for (i = 0; i < locations.length; i++) {
console.log(locations[i][0]);
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][0], locations[i][1]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
}
'post_obj' выглядит как
[{"longitude":"79.92094122685603","latitude":"6.858206289512469","placeName":"refill Place Rika's","phoneNo":""},{"longitude":"6.534608320452274","latitude":"81.19367459766863","placeName":"","phoneNo":""}]
Пожалуйста, помогите мне найти решение.