修改谷歌地图类型的最大缩放级别




我需要将google.maps.MapTypeId.HYBRIDmaxZoom级别设置为 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对象的属性(maxZoomminZoom等...(,则只有在地图类型更改为该mapType后,更改的效果才会出现。例如,如果当前mapTypeTERRAIN,并且你更改了TERRAINmaxZoom,则maxZoom只有在将mapType更改为另一种类型(例如 ROADMAPHYBRID等(然后回到TERRAIN.

不要设置mapTypemaxZoom选项,而是使用核心地图的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});
    }
});

最新更新