Map Markers Not Displaying (javascript/google Maps Api V3)
Solution 1:
Okay, after quite a bit of messing around in Chrome's JavaScript console (I love that thing), I was able to get it working perfectly. I rewrote the mapinit()
and mark()
functions to this:
functionmapinit() {
var conf = {
zoom: 11,
center: new google.maps.LatLng(45.7832856,-108.5006904),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById('mapcont'),conf);
for(i in markers) {
markers[i][3] = new google.maps.LatLng(markers[i][0],markers[i][1]);
window.setTimeout('mark('+i+')',i*200);
}
}
functionmark(i){
new google.maps.Marker({
position: markers[i][3],
animation: google.maps.Animation.DROP,
map: map,
title: markers[i][2]
});
}
The main difference here is that the position
variable of the marker seems to require being initialized in an outside variable for some reason, so when I loop through the markers
array, I generate a google.maps.LatLng
as the fourth item for each marker. This is then referenced within the mark()
function, and the marker displays successfully. The setTimeout
for staggering the display of the markers works wonderfully, especially on faster connections where the scripts and map load quickly.
View the end result on my inClass site
Solution 2:
It's the new
keyword that makes all the difference!
I had the same problem. Using the new keyword when constructing the Marker object makes it work again in Chrome at least. Putting it in a differed timeout event didn't. And here I thought new
was nothing but syntactic sugar...
Post a Comment for "Map Markers Not Displaying (javascript/google Maps Api V3)"