9


maxZoomレベルを21 に設定する必要があります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);

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のズームレベルを上げる方法はありますか?

ありがとう。

4

1 に答える 1

11

mapTypeオブジェクトのプロパティ ( maxZoom、など) を変更した場合minZoom、変更された効果は、マップのタイプがその に変更された後にのみmapType適用されます。たとえば、現在のがでmapTypeTERRAINを変更した場合、別のタイプ (など)に変更して に戻った後にのみ機能します。TERRAINmaxZoommaxZoommapTypeROADMAPHYBRIDTERRAIN

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});
    }
});
于 2012-05-09T15:20:23.273 に答える