更新geoxml3上的中心点

时间:2015-02-06 12:40:38

标签: google-maps-api-3 geoxml3

我使用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应用chnages。我的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);

}

这不保留原始风格等。

1 个答案:

答案 0 :(得分: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;
}