我使用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);
}
这不保留原始风格等。
答案 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;
}