gmaps set marker(s)
init marker(s) and update it.
HTML
<script src="http://maps.google.com/maps/api/js?sensor=false&extn=.js"></script>
<div id="map_2385853" style="width:500px; height:500px;"></div>
JavaScript
var locations = {}; //A repository for markers (and the data from which they were contructed).
//initial dataset for markers
var locs = {
1: {
info: '11111. Some random info here2',
lat: -37.8139,
lng: 144.9634
},
2: {
info: '22222. Some random info here',
lat: 46.0553,
lng: 14.5144
},
3: {
info: '33333. Some random info here',
lat: -33.7333,
lng: 151.0833
},
4: {
info: '44444. Some random info here',
lat: 27.9798,
lng: -81.731
}
};
var map = new google.maps.Map(document.getElementById('map_2385853'), {
zoom: 1,
maxZoom: 8,
minZoom: 1,
streetViewControl: false,
center: new google.maps.LatLng(30, 30),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
//var infowindow = new google.maps.InfoWindow();
function setMarkers(locObj) {
$.each(locObj, function (key, loc) {
if (!locations[key] && loc.lat !== undefined && loc.lng !== undefined) {
//Marker has not yet been made (and there's enough data to create one).
//Create marker
loc.marker = new google.maps.Marker({
position: new google.maps.LatLng(loc.lat, loc.lng),
map: map
});
var infowindow = new google.maps.InfoWindow({
content: loc.info
});
infowindow.open(map, loc.marker);
infowindow.setContent(loc.info);
google.maps.event.trigger(map, "click", {});
//Attach click listener to marker
google.maps.event.addListener(map, 'click', (function (key) {
return function () {
infowindow.setContent(locations[key].info);
infowindow.open(map, locations[key].marker);
}
})(key));
...