I have to create several markers on Google Maps, in run-time.
Their initial position is randomly defined.
When they are created, how can I change position of some of them? New position is also randomly defined.
I did tried with
marker1.setPosition(pt);
… but, I’m getting error
marker1 is not defined
I guess that problem is that marker1 is not defined in moment when map is created… Something like that.
Can you help me how can I solve this one?
p.s. There is no limit of how many markers will be created.
UPDATE Markers are created with:
function addNewMarker( locationsTotal ) {
if (document.getElementById("lon1").value == '') document.getElementById("lon1").value = '19';
if (document.getElementById("lat1").value == '') document.getElementById("lat1").value = '45';
var parliament = (map.getCenter());
var newMarker = 'marker' + locationsTotal;
newMarker = new google.maps.Marker({
name:newMarker,
id:newMarker,
map:map,
draggable:true,
animation: google.maps.Animation.DROP,
position: parliament,
icon: 'img/pin.png'
});
google.maps.event.addListener(newMarker, "dragend", function() {
var center = newMarker.getPosition();
var latitude = center.lat();
var longitude = center.lng();
var newLon = 'lon' + locationsTotal;
var newLat = 'lat' + locationsTotal;
document.getElementById(newLon).value = longitude;
document.getElementById(newLat).value = latitude;
});
}
As You can see
newMarkeris visible only in the scope ofaddNewMarkerfunction.What you need is to store your markers in array visible in global scope.
For example:
Modify your function:
All your markers are now stored in an array so you can manipulate them.
To access marker by name add function: