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。
有没有办法制作可以对其他区域使用 "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。