diff --git a/js/marker.js b/js/marker.js index 0040c3c..fad5728 100644 --- a/js/marker.js +++ b/js/marker.js @@ -51,7 +51,7 @@ Drupal.gmap.addHandler('gmap', function (elem) { obj.deferChange('clickmarker', -1, marker); } if (obj.vars.behavior.autozoom) { - obj.bounds.extend(marker.marker.getPoint()); + obj.bounds.extend(new google.maps.LatLng(marker.latitude, marker.longitude)); } // If the highlight arg option is used in views highlight the marker. if (marker.opts.highlight == 1) { @@ -132,7 +132,14 @@ Drupal.gmap.addHandler('gmap', function (elem) { // If we are autozooming, set the map center at this time. if (obj.vars.behavior.autozoom) { if (!obj.bounds.isEmpty()) { - obj.map.setCenter(obj.bounds.getCenter(), Math.min(obj.map.getBoundsZoomLevel(obj.bounds), obj.vars.maxzoom)); + obj.map.fitBounds(obj.bounds); + var listener = google.maps.event.addListener(obj.map, "idle", function() { + if (obj.vars.maxzoom) { + var maxzoom = parseInt(obj.vars.maxzoom) + if (obj.map.getZoom() > maxzoom) obj.map.setZoom(maxzoom); + google.maps.event.removeListener(listener); + } + }); } } }); @@ -142,6 +149,7 @@ Drupal.gmap.addHandler('gmap', function (elem) { // @@@ Perhaps we should have a bounds for both markers and shapes? if (obj.vars.behavior.autozoom) { obj.bounds = new google.maps.LatLngBounds(); + obj.map.fitBounds(bounds); } });