2015-07-08 4 views
0

Так что я пытаюсь отключить параметр масштабирования на моей карте, когда пользователь нажимает на область карты, используя обработчики событий, он хорошо работает для атрибутов, таких как цвет, и так, но не работает, чтобы отключить масштабирование ,Mapael js disable zoom

/* ... */ 

, defaultArea: { 
    attrs : { 
     fill : "#28282b" 
     //, stroke: "#474c4b" 
    } 
    , attrsHover : { 
     fill: "#3da879" 
    } 
    , text : { 
     attrs : { 
      fill : "#6d6d6d" 
     } 
     , attrsHover : { 
      fill : "#fff" 
     } 
    } 


    ,eventHandlers: { 
     click: function (e, id, mapElem, textElem,elemOptions) { 
      var newData = { 
       'areas': {} 
       ,'zoom': {} 
      };           
      if (mapElem.originalAttrs.fill == "#28282b") { 

       newData.areas[id] = { 
        attrs: { 
         fill: "#3da879" 
        } 
        , text : { 
         attrs : { 
          fill : "#fff" 
         } 
         , attrsHover : { 
          fill : "#fff" 
         } 
        } 
       }; 

       newData.zoom[id] = { 
        enabled : false, 
        maxLevel : 10 
       }; 



      } else { 
       newData.areas[id] = { 
        attrs: { 
         fill: "#28282b" 
        } 
        , text : { 
         attrs : { 
          fill : "#6d6d6d" 
         } 
         , attrsHover : { 
          fill : "#fff" 
         } 
        }         
       }; 
      } 

      $(".mapcontainer").trigger('update', [newData]); 
     } 
    } 

/* ... */  

ответ

1

Вы проверили этот JSFiddle пример: http://jsfiddle.net/neveldo/ejf9dsL9/? Он показывает, как изменить масштаб определенной области, вызвав «трансфокатора» событие, когда пользователь нажимает на кнопку:

$maparea2.trigger('zoom', {level : 10, latitude : 45.758888888889, longitude : 4.8413888888889}); 

Если вы хотите отключить функцию увеличения после, вы можете отвязать «колеса прокрутки» событием на контейнер карты.

Я надеюсь, что это вам поможет.