2012-07-08 66 views
4

是否有可能重新初始化一个gmap3地图为其默认设置(lat,long,zoom等)?重新初始化gmap3地图

我试图在地图上销毁,然后重新运行初始化,但它不工作。

看到这里我的jsfiddle - http://jsfiddle.net/vlowe/z9dDE/1/

+0

只需删除销毁代码。它会按预期工作。 – 2012-07-08 15:31:35

+0

它首先试过,它不 – 2012-07-08 15:39:59

回答

4

裹地图元素在div容器,然后当你想重置地图,只是删除了整个地图格,然后重新创建。这应该可以解决问题。

根据gmap3文档,在删除dom元素之前,您仍然需要在地图上调用destroy。

HTML代码

<div> 
    <div id="map"></div> 
</div> 

<a href="#" onclick="restore();">restore</a>​ 

的JavaScript

var dlat = 53.9783997; // default map latitude 
var dlng = -1.5666347; // default map longitude 
var dzoom = 6; // default map zoom 
var dmaptype = "roadmap"; // default map type 
// create gmap 
$('#map').gmap3({ 
    action: 'init', 
    options: { 
     center: [dlat, dlng], 
     zoom: dzoom, 
     mapTypeId: dmaptype, 
     mapTypeControl: true, 
     mapTypeControlOptions: { 
      style: google.maps.MapTypeControlStyle.DROPDOWN_MENU 
     }, 
     navigationControl: true, 
     scrollwheel: true, 
     streetViewControl: true 
    } 
}); 


function restore() { 

    $('#map').gmap3({ 
     action: 'destroy' 
    }); 

    var container = $('#map').parent(); 
    $('#map').remove(); 
    container.append('<div id="map"></div>'); 

    // create new gmap 
    $('#map').gmap3({ 
     action: 'init', 
     options: { 
      center: [dlat, dlng], 
      zoom: dzoom, 
      mapTypeId: dmaptype, 
      mapTypeControl: true, 
      mapTypeControlOptions: { 
       style: google.maps.MapTypeControlStyle.DROPDOWN_MENU 
      }, 
      navigationControl: true, 
      scrollwheel: true, 
      streetViewControl: true 
     } 
    }); 

}​ 
+0

是的,这是有效的。欢呼亚历克斯 – 2012-07-08 15:57:25

3

这里的另一种方法: 而不是破坏地图和完全重新创建它,你可以保存初始状态,并恢复到状态像这样:http://jsfiddle.net/UvAL3/1/

(这些函数作为V2的一部分存在)