重新初始化gmap3地图

时间:2012-07-08 15:18:57

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

是否可以将gmap3地图重新初始化为默认设置(lat,long,zoom等)?

我尝试在地图上销毁,然后重新运行初始化,但它无法正常工作。

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

2 个答案:

答案 0 :(得分:4)

将地图元素包装在容器div中,然后当您想要重置地图时,只需删除整个地图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
        }
    });

}​

答案 1 :(得分:3)

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

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