0

geoxml3 を使用して読み込みとスタイルを設定しました。ここで、中心点とズームレベルのみを変更してマップを更新したいと考えています。どうすればこれを達成できますか。

var latlng = new google.maps.LatLng(29.722601, -11.681680); 
    var myOptions = {
            zoom : 1,
            //minZoom:2,
            maxZoom:10,
            center : latlng,
            //disableDefaultUI: true,
            streetViewControl: false,
            mapTypeControl: false,
            panControl: true,
            zoomControl: true,
            suppressInfoWindows : true,
            preserveViewport : true,
            scrollwheel: false,
            styles:style
        };

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var geoXml = new geoXML3.parser({
        map: map,
        singleInfoWindow: false,
        afterParse: useTheData,
        suppressInfoWindows : true,
        zoom : false
    });
    geoXml.parse(url_kml+'basins.kml');

上記が読み込まれたら、onclick を使用して変更を適用します。私のonclickは次のjs関数を実行します

function updatekmmap(region){
    console.log(region);
    console.log(map);
    var latlng = new google.maps.LatLng(29.722601, -11.681680);
    //
    switch(region){
    case "north":
        latlng = new google.maps.LatLng(56.065192, -104.814452); 
        break;
    }
    gMap = new google.maps.Map(document.getElementById('map_canvas')); 
    gMap.setZoom(10);      // This will trigger a zoom_changed on the map
    gMap.setCenter(latlng);

}

これは元のスタイルなどを保持しません。

4

1 に答える 1

0

私は今それを働いています。私はマップオブジェクトを再作成していました。

function updatekmmap(region){
    console.log(region);
    console.log(map);
    var latlng = new google.maps.LatLng(29.722601, -11.681680);
    //
    switch(region){
        case "north":
            latlng = new google.maps.LatLng(31.137854, -90.256931); 
            break;
        case "south":
            latlng = new google.maps.LatLng(31.137854, -90.256931); 
            break;
        case "caribbean":
            latlng = new google.maps.LatLng(31.137854, -90.256931); 
            break;
        case "eu":
            latlng = new google.maps.LatLng(50.352658, -9.316490); 
            break;
        case "med":
            latlng = new google.maps.LatLng(37.309248, 18.786537); 
            break;
        case "africa":
            latlng = new google.maps.LatLng(-14.933886, -59.495213); 
            break;
        case "asia":
            latlng = new google.maps.LatLng(31.137854, -90.256931); 
            break;
    }
    //gMap = new google.maps.Map(document.getElementById('map_canvas')); 
    map.setZoom(3);      // This will trigger a zoom_changed on the map
    map.setCenter(latlng);
    //console.log( geoXml.getDefaultBounds());
    //return false;
}
于 2015-02-06T13:45:43.840 に答える