jbr*_*rnd 8 javascript google-maps google-maps-api-3
我需要设置为21 的maxZoom级别google.maps.MapTypeId.HYBRID.实际上,他设置为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);
Run Code Online (Sandbox Code Playgroud)
和
google.maps.event.addListener(map, 'tilesloaded', function(event){
var mapTypeRegistry = map.mapTypes;
var currentMapTypeId = map.getMapTypeId();
var mapType = mapTypeRegistry.get(currentMapTypeId);
mapType.maxZoom = 21;
});
Run Code Online (Sandbox Code Playgroud)
那么,有没有办法增加mapType HYBRID的缩放级别?
谢谢.
如果您更改了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});
}
});
Run Code Online (Sandbox Code Playgroud)