diff --git a/js/markermanager_marker.js b/js/markermanager_marker.js index 0fd20c5..0f38398 100644 --- a/js/markermanager_marker.js +++ b/js/markermanager_marker.js @@ -8,36 +8,46 @@ /*global Drupal, GMarker, MarkerManager */ // Replace to override marker creation -Drupal.gmap.factory.marker = function (loc, opts) { - return new GMarker(loc, opts); +Drupal.gmap.factory.marker = function (opts) { + return new google.maps.Marker(opts); }; Drupal.gmap.addHandler('gmap', function (elem) { var obj = this; obj.bind('init', function () { + // Set up the markermanager. - obj.mm = new MarkerManager(obj.map, Drupal.settings.gmap_markermanager); - }); + obj.mm = new MarkerManager(obj.map, Drupal.settings.gmap_markermanager); + + google.maps.event.addListener(obj.mm, 'loaded', function(){ + + for ( var i in obj.vars.markers ) { + + var marker = obj.vars.markers[i]; + + var minzoom = Drupal.settings.gmap_markermanager.markerMinZoom; + var maxzoom = Drupal.settings.gmap_markermanager.markerMaxZoom; + if (marker.minzoom) { + minzoom = marker.minzoom; + } + if (marker.maxzoom) { + maxzoom = marker.maxzoom; + } + if (maxzoom > 0) { + obj.mm.addMarker(marker.marker, minzoom, maxzoom); + } + else { + obj.mm.addMarker(marker.marker, minzoom); + } + obj.mm.refresh(); + + } + + }); - obj.bind('addmarker', function (marker) { - var minzoom = Drupal.settings.gmap_markermanager.markerMinZoom; - var maxzoom = Drupal.settings.gmap_markermanager.markerMaxZoom; - if (marker.minzoom) { - minzoom = marker.minzoom; - } - if (marker.maxzoom) { - maxzoom = marker.maxzoom; - } - if (maxzoom > 0) { - obj.mm.addMarker(marker.marker, minzoom, maxzoom); - } - else { - obj.mm.addMarker(marker.marker, minzoom); - } - obj.mm.refresh(); }); - + obj.bind('delmarker', function (marker) { obj.mm.removeMarker(marker.marker); });