diff --git a/src/js/netjsongraph.render.js b/src/js/netjsongraph.render.js index 84fad844..ef0c3ba1 100644 --- a/src/js/netjsongraph.render.js +++ b/src/js/netjsongraph.render.js @@ -303,15 +303,50 @@ class NetJSONGraphRender { * */ graphRender(JSONData, self) { - self.utils.echartsSetOption( - self.utils.generateGraphOption(JSONData, self), - self, - ); + const echartOptions = self.utils.generateGraphOption(JSONData, self); + if (echartOptions.series[0].label === undefined) { + echartOptions.series[0].label = {}; + } + if ( + !echartOptions.series[0].zoom || + echartOptions.series[0].zoom < self.config.showLabelsAtZoomLevel + ) { + echartOptions.series[0].label.show = false; + } else { + echartOptions.series[0].label.show = true; + } + self.utils.echartsSetOption(echartOptions, self); window.onresize = () => { self.echarts.resize(); }; + self.echarts.on("graphRoam", () => { + const customOptions = self.echarts.getOption(); + if ( + customOptions.series[0].zoom >= self.config.showLabelsAtZoomLevel && + !customOptions.series[0].label.show + ) { + customOptions.series[0].label.show = true; + self.echarts.setOption(customOptions, { + notMerge: { + silent: true, + }, + lazyUpdate: true, + }); + } else if ( + customOptions.series[0].zoom < self.config.showLabelsAtZoomLevel && + customOptions.series[0].label.show + ) { + customOptions.series[0].label.show = false; + self.echarts.setOption(customOptions, { + notMerge: { + silent: true, + }, + }); + } + }); + self.event.emit("onLoad"); self.event.emit("onReady"); self.event.emit("renderArray"); @@ -437,7 +472,6 @@ class NetJSONGraphRender { self.leaflet.geoJSON.addTo(self.leaflet); } } - if (self.leaflet.getZoom() < self.config.showLabelsAtZoomLevel) { self.echarts.setOption({ series: [