2012-07-08 67 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的一部分存在)