JVectorMap:自定义区域的向下钻取

JVectorMap: drill-down for custom regions

有没有办法制作可以对其他区域使用 "drill-down" behaviour for some areas and "select" 行为的组合地图?

没有达到此目的的标准行为。

为了处理这个问题,我不得不修改 MultiMap 文件。在 addMap 函数中,您可以添加 硬编码检查区域代码或将其添加到配置并通过或拒绝向下钻取。

我相信您所要求的也可以通过 jVectorMap 提供的一些标准功能来实现。在我下面的示例中,可以选择除德克萨斯州以外的所有美国区域,从而仅针对美国德克萨斯州执行正常的多地图向下钻取。

$(document).ready(function () {
  new jvm.MultiMap({
    container: $('#map'),
    maxLevel: 1,
    main: {
      map: 'us_lcc',
      regionsSelectable: true,
      regionStyle: {
        selected: {
            fill: 'green'
          }
        },
        onRegionClick: function(event, code) {
          if(code == "US-TX") {
            return false;
          } else {
            event.stopImmediatePropagation();
          }
        }
      }
  });
});

解释:

如文档所述here,MultiMap对象的主Map可以像"normal" Map一样配置。

在多地图 onRegionClick 处理程序中,可以通过返回 false 来避免区域选择,并且可以通过调用 stopImmediatePropagation() 来停止向下钻取。我用 jVectorMap 版本 2.0.2 测试了这个片段,但它应该也适用于最新版本。

顺便说一句,感谢 bjornd 伟大的 jVectorMap。