我需要将google.maps.MapTypeId.HYBRID
的maxZoom
级别设置为 21。实际上,他设置为 14(使用火虫控制台检查(.
设置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
对象的属性(maxZoom
、minZoom
等...(,则只有在地图类型更改为该mapType
后,更改的效果才会出现。例如,如果当前mapType
是TERRAIN
,并且你更改了TERRAIN
的maxZoom
,则maxZoom
只有在将mapType
更改为另一种类型(例如 ROADMAP
、HYBRID
等(然后回到TERRAIN
.
不要设置mapType
的maxZoom
选项,而是使用核心地图的maxZoom
选项。为"maptypeid_changed"
事件添加侦听器,当事件发生时,更改maxZoom
map
选项:
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});
}
});