From 2ec9c1bfceaa58bdcfd62e060fcc0b1ec121d947 Mon Sep 17 00:00:00 2001 From: "haiiro.shimeji" <haiiro.shimeji@gmail.com> Date: Sat, 3 Mar 2012 15:25:21 +0900 Subject: [PATCH] Info windows are still using all the old V1 methods, --- js/marker.js | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/js/marker.js b/js/marker.js index 14fc5f0..29312c7 100644 --- a/js/marker.js +++ b/js/marker.js @@ -10,6 +10,8 @@ Drupal.gmap.addHandler('gmap', function (elem) { var obj = this; + var infowindow = null; + obj.bind('init', function () { if (obj.vars.behavior.autozoom) { obj.bounds = new google.maps.LatLngBounds(); @@ -51,7 +53,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) { @@ -61,9 +63,15 @@ Drupal.gmap.addHandler('gmap', function (elem) { // Default marker actions. obj.bind('clickmarker', function (marker) { - // Local/stored content + // Close infowindow if open to prevent multiple windows + if (infowindow != null){ + infowindow.close(); + } + infowindow = new google.maps.InfoWindow({ + content: marker.text + }); if (marker.text) { - marker.marker.openInfoWindowHtml(marker.text); + infowindow.open(obj.map, marker.marker); } // Info Window Query / Info Window Offset if (marker.iwq || (obj.vars.iwq && typeof marker.iwo != 'undefined')) { @@ -123,7 +131,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); + } + }); } } }); -- GitLab