我需要将 google.maps.MapTypeId.HYBRID
的 maxZoom
级别设置为 21。实际上,他设置为 14(使用 firebug 控制台检查)。
设置 google.maps
对象的属性 'maxZoom' 在这种情况下不起作用,我已经尝试修改 google.maps.mapTypes
对象, 但没有成功。
var options = {
center: new google.maps.LatLng(lat_centre,lng_centre),
zoom: 14,
maxZoom: 21,
mapTypeId: google.maps.MapTypeId.TERRAIN,
panControl: true,
zoomControl: true,
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
overviewMapControl: false,
disableDoubleClickZoom: true,
styles: [
{featureType: "poi", stylers: [{visibility: "off"}]}
]
};
map = new google.maps.Map(document.getElementById("map_container"),options);
和
google.maps.event.addListener(map, 'tilesloaded', function(event){
var mapTypeRegistry = map.mapTypes;
var currentMapTypeId = map.getMapTypeId();
var mapType = mapTypeRegistry.get(currentMapTypeId);
mapType.maxZoom = 21;
});
那么,有没有办法增加 mapType HYBRID 的缩放级别?
谢谢。
最佳答案
如果您更改了 mapType
对象的属性(maxZoom
、minZoom
等...),更改后的效果将取而代之ONLY AFTER map 的类型将更改为该 mapType
。例如,如果当前 mapType
是 TERRAIN
,并且您更改了 TERRAIN
的 maxZoom
,maxZoom
只有在将 mapType
更改为另一种类型(例如 ROADMAP
、HYBRID
等)并返回到 TERRAIN 后才会起作用
。
不是设置mapType
的maxZoom
选项,而是使用核心 map 的maxZoom
选项。为"maptypeid_changed"
事件添加监听器,当事件发生时,改变map
的maxZoom
选项:
google.maps.event.addListener(map, 'maptypeid_changed', function(event){
if( map.getMapTypeId() === google.maps.MapTypeId.TERRAIN ){
map.setOptions({maxZoom:/*For example*/5});
}else
if( map.getMapTypeId() === google.maps.MapTypeId.ROADMAP ){
map.setOptions({maxZoom:/*For example*/8});
}//Etc...
else{
map.setOptions({maxZoom:/*For example*/21});
}
});
关于javascript - 修改 Google map 类型的最大缩放级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10517848/