From 57914fb04d7d0d5a7625db99c22fed22afce4aeb Mon Sep 17 00:00:00 2001 From: "Zhongxiang.Wang" Date: Tue, 4 Aug 2020 14:03:58 +0800 Subject: [PATCH] fix(bmap): bmap event `moveend` is always triggered when dragging or zoomend. (#12558) --- extension-src/bmap/BMapCoordSys.js | 9 +- extension-src/bmap/BMapView.js | 6 +- test/bmap2.html | 592 +++++++++++++++++++++++++++++ 3 files changed, 601 insertions(+), 6 deletions(-) create mode 100644 test/bmap2.html diff --git a/extension-src/bmap/BMapCoordSys.js b/extension-src/bmap/BMapCoordSys.js index 30a05ef02..0881f3752 100644 --- a/extension-src/bmap/BMapCoordSys.js +++ b/extension-src/bmap/BMapCoordSys.js @@ -201,8 +201,13 @@ BMapCoordSys.create = function (ecModel, api) { var center = bmapModel.get('center'); var zoom = bmapModel.get('zoom'); if (center && zoom) { - var pt = new BMap.Point(center[0], center[1]); - bmap.centerAndZoom(pt, zoom); + var bmapCenter = bmap.getCenter(); + var bmapZoom = bmap.getZoom(); + var centerOrZoomChanged = bmapModel.centerOrZoomChanged([bmapCenter.lng, bmapCenter.lat], bmapZoom); + if (centerOrZoomChanged) { + var pt = new BMap.Point(center[0], center[1]); + bmap.centerAndZoom(pt, zoom); + } } bmapCoordSys = new BMapCoordSys(bmap, api); diff --git a/extension-src/bmap/BMapView.js b/extension-src/bmap/BMapView.js index b1ff0045e..e8a99e429 100644 --- a/extension-src/bmap/BMapView.js +++ b/extension-src/bmap/BMapView.js @@ -67,12 +67,10 @@ export default echarts.extendComponentView({ } bmap.removeEventListener('moving', this._oldMoveHandler); - // FIXME - // Moveend may be triggered by centerAndZoom method when creating coordSys next time - // bmap.removeEventListener('moveend', this._oldMoveHandler); + bmap.removeEventListener('moveend', this._oldMoveHandler); bmap.removeEventListener('zoomend', this._oldZoomEndHandler); bmap.addEventListener('moving', moveHandler); - // bmap.addEventListener('moveend', moveHandler); + bmap.addEventListener('moveend', moveHandler); bmap.addEventListener('zoomend', zoomEndHandler); this._oldMoveHandler = moveHandler; diff --git a/test/bmap2.html b/test/bmap2.html new file mode 100644 index 000000000..c2ce976cb --- /dev/null +++ b/test/bmap2.html @@ -0,0 +1,592 @@ + + + + + + + + + + + + + +
+ + + -- GitLab