Mapael JS отключить зум
Поэтому я пытаюсь отключить параметр масштабирования на моей карте, когда пользователь нажимает на область карты, используя обработчики событий, это хорошо работает для атрибутов, таких как цвет и т. Д., Но не работает для отключения масштабирования.
/* ... */
, 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});
Если вы хотите отключить функцию масштабирования после этого, вы можете отменить привязку события mousewheel к контейнеру карты.
Я надеюсь, что это поможет вам.