4

gmap3マップをデフォルト設定(緯度、経度、ズームなど)に再初期化することは可能ですか?

マップ上で破棄してから初期化を再実行しようとしましたが、機能しません。

ここで私のjsfiddleを参照してください-http ://jsfiddle.net/vlowe/z9dDE/1/

4

2 に答える 2

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
        }
    });

}​
于 2012-07-08T15:43:49.367 に答える
3

別の方法は次のとおりです。マップを破棄して完全に再作成するのではなく、初期状態を保存して、次のようにその状態に復元することができます。http: //jsfiddle.net/UvAL3/1/

(これらの関数はV2のAPIの一部として存在していました)

于 2012-07-08T16:22:23.690 に答える