javascript - 修改 Google map 类型的最大缩放级别

标签 javascript google-maps google-maps-api-3


我需要将 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 等...),更改后的效果将取而代之ONLY AFTER map 的类型将更改为该 mapType。例如,如果当前 mapTypeTERRAIN,并且您更改了 TERRAINmaxZoommaxZoom 只有在将 mapType 更改为另一种类型(例如 ROADMAPHYBRID 等)并返回到 TERRAIN 后才会起作用

不是设置mapTypemaxZoom 选项,而是使用核心 map 的maxZoom 选项。为"maptypeid_changed"事件添加监听器,当事件发生时,改变mapmaxZoom选项:

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/

相关文章:

php - 谷歌地图API和PHP集成问题

javascript - 使用jquery从iframe获取浏览器视口(viewport)的高度

javascript - 生产 Node 应用程序找不到 SVG 文件

c# - 新用户首次登录网站

javascript - Object.freeze() 卡住原型(prototype)实例?

google-maps - 谷歌地图 v3 OverlayView.getProjection()

android - SupportMapFragment 中如何使用深色模式?

android - 如何在 Google Autocomplete place API 中使用代码获取所有机场名单

google-maps - Google Place Autocomplete API 未以正确的语言返回结果

angularjs - 在 angularjs 中有条件地引导应用程序