Активировать детализацию JVectorMap с помощью ссылки или кнопки

Я использую плагин JVectorMap и успешно создал детализация карты.

Мой вопрос в том, можно ли активировать функцию детализации извне за пределами карты в другом месте на странице, то есть при нажатии ссылки или кнопки.


person Ethan    schedule 13.03.2018    source источник


Ответы (1)


Допустим, вы правильно инициализировали детализированную карту jVectorMap:

var drillDownUSMap;

$(document).ready(function () {
  drillDownUSMap= new jvm.MultiMap({
    container: $('#map'),
    maxLevel: 1,
    main: {
    map: 'us_lcc',
    regionsSelectable: true,
    regionStyle: {
        selected: {
            fill: 'green'
            }
        },
    },
    mapUrlByCode: function(code, multiMap){
      var path = 'maps/us-counties/',
          county = code.toLowerCase(),
          proj = multiMap.defaultProjection,
          mapData = 'jquery-jvectormap-data-' + county + '-' + proj + '-en.js';
      return path + mapData;
    }
  });
});

(ИМХО, я бы сохранил ссылку на возвращенный объект карты), затем используйте его следующим образом:

function drillDownUSMapTo(code) {
  var mapData = drillDownUSMap.params.mapNameByCode(code, drillDownUSMap);
  drillDownUSMap.drillDown(mapData, code);
}

... при этом у вас уже должны быть кнопки для нажатия, как вы сказали в своем вопросе:

onclick="drillDownUSMapTo('US-TX');"

Кстати, спасибо bjornd за великолепный jVectorMap.

person deblocker    schedule 15.03.2018
comment
МОЙ БОГ!! Спасибо большое! Я пытался сделать это несколько месяцев, и теперь вы решили мою проблему. Еще раз спасибо! - person Ethan; 17.03.2018