单击按钮时,谷歌地图不会重新加载

时间:2014-03-24 15:02:06

标签: javascript jquery google-maps google-maps-api-3

我正在使用谷歌地图如下:

$('#map_canvas').gmap({ 'zoom': 3, 'disableDefaultUI': true }).bind('init', function (evt, map) {


         var bounds = map.getBounds();

         var southWest = bounds.getSouthWest();
         var northEast = bounds.getNorthEast();
         var lngSpan = northEast.lng() - southWest.lng();
         var latSpan = northEast.lat() - southWest.lat();
         for (var i = 0; i < 1000; i++) {

             var contentString = 'load';
             $(this).gmap('addMarker',
        { 'position': new google.maps.LatLng(
           southWest.lat() + latSpan * Math.random(),
           southWest.lng() + lngSpan * Math.random()),
            'content': contentString
        }
      ).click(function (i) {
          $('#map_canvas').gmap('openInfoWindow', {
              content: this.content
          }, this);
      });
         }
         $(this).gmap('set', 'MarkerClusterer', new MarkerClusterer(map, $(this).gmap('get', 'markers')));
     });
 }).load();

在加载时它是好的,但是当我例如再次调用下面的函数maptest()时,例如单击一个按钮,地图根本不会改变,即使我取消绑定地图并再次绑定它但没有效果:< / p>

function maptest(){


 demo.add(function () {
     $('#map_canvas').unbind("init");
     $('#map_canvas').gmap({ 'zoom': 3, 'disableDefaultUI': true }).bind('init', function (evt, map) {


         var bounds = map.getBounds();

         var southWest = bounds.getSouthWest();
         var northEast = bounds.getNorthEast();
         var lngSpan = northEast.lng() - southWest.lng();
         var latSpan = northEast.lat() - southWest.lat();
         for (var i = 0; i < 1000; i++) {

             var contentString = 'test';
             $(this).gmap('addMarker',
        { 'position': new google.maps.LatLng(
           southWest.lat() + latSpan * Math.random(),
           southWest.lng() + lngSpan * Math.random()),
            'content': contentString
        }
      ).click(function (i) {
          $('#map_canvas').gmap('openInfoWindow', {
              content: this.content
          }, this);
      });
         }
         $(this).gmap('set', 'MarkerClusterer', new MarkerClusterer(map, $(this).gmap('get', 'markers')));
     });
 }).load();

}

更新:当我使用$('#map_canvas')。gmap('destroy')。gmap ...而不是地图重新加载,但我得到报警框,其中sais:由于任何一个穷人无法加载互联网连接或某些cdn没有像我们希望的那样响应......

请帮助我这么困惑?我的代码出了什么问题?

1 个答案:

答案 0 :(得分:0)

它可能以这种方式起作用:

 $('#map_canvas').gmap('destroy');
 $('#map_canvas').gmap({ 'zoom': 3, 'disableDefaultUI': true }).bind('init', function (evt, map) {