簡體   English   中英

修改Google地圖類型的最大縮放級別

[英]Modify the max zoom level of a Google Map Type


我需要將google.maps.MapTypeId.HYBRIDmaxZoom級別設置為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對象的屬性( 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});
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM