2016-05-18 4 views
2

Я пытаюсь уменьшить размер карты, увеличивая/уменьшая масштаб при нажатии кнопок увеличения/уменьшения. Кажется, нет никакой переменной для этого и что для нее требуется специальная функция с использованием http://api.highcharts.com/highmaps#Chart.mapZoomИзменение уровня масштабирования для высокоскоростных карт

Что мне нужно сделать, это переопределить событие по умолчанию для кнопок увеличения и уменьшения с настраиваемым событием, которое использует настраиваемое значение для параметра mapZoom 'howMuch'. Это единственный пример, который я смог найти функции mapZoom в действии - http://jsfiddle.net/z8X6B/1/:

Highcharts.Chart.prototype.mapZoom = function (howMuch, centerXArg, centerYArg, mouseX, mouseY) {} 

Но я не мог понять, как переопределить существующее увеличение/уменьшение масштаба событий кнопки с обычаем (я бы хотел не создавать собственные кнопки).

ответ

3

Отличный вопрос! Я вырыл через ссылку API Highmaps на кнопки навигации карты (http://api.highcharts.com/highmaps#mapNavigation.buttons) и понял, как это сделать:

mapNavigation: { 
    buttons: { 
     zoomIn: { 
      // the lower the value, the greater the zoom in 
      onclick: function() { this.mapZoom(0.1); } 
     }, 
     zoomOut: { 
      // the higher the value, the greater the zoom out 
      onclick: function() { this.mapZoom(10); } 
     } 
    } 
}, 

Вот активная скрипку на основе одного из демоса Highmaps: http://jsfiddle.net/brightmatrix/d51g1jt2/

Из моих тестов , кажется, что ваше значение для mapZoom(), когда масштабирование должно быть в процентах от карты, которую вы все еще хотите увидеть после масштабирования (в этом примере мы хотим увидеть всего 10% от общей карты). Любое значение 1 или выше не работает.

Для масштабирования значение для mapZoom() представляется множителем. Таким образом, в этом случае мы увеличили до 10% от стоимости карты, поэтому вы уменьшите масштаб в 10 раз.

Значения по умолчанию для увеличения и уменьшения масштаба - это 0.5 и 2, что имеет смысл (увеличьте до 50% от размера карты, уменьшите масштаб 2x).

Я надеюсь, что эта информация будет полезна и полезна для вас!

+1

Отлично! Это намного проще, чем я себе представлял. Ваши предложенные значения увеличивают уровень масштабирования. Для небольших приращений хорошо работает следующее: zoomIn: this.mapZoom (0.8); zoomOut: this.mapZoom (1.25); – Fred

+0

Я рад, что сработал хорошо для вас! И спасибо за предложенные параметры для 'mapZoom'. –

 Смежные вопросы

  • Нет связанных вопросов^_^