diff --git a/extension/bmap/BMapCoordSys.js b/extension/bmap/BMapCoordSys.js index bd0c460e80..eda669ce69 100644 --- a/extension/bmap/BMapCoordSys.js +++ b/extension/bmap/BMapCoordSys.js @@ -133,7 +133,8 @@ define(function (require) { // TODO Dispose ecModel.eachComponent('bmap', function (bmapModel) { - var viewportRoot = api.getZr().painter.getViewportRoot(); + var painter = api.getZr().painter; + var viewportRoot = painter.getViewportRoot(); if (typeof BMap === 'undefined') { throw new Error('BMap api is not loaded'); } @@ -160,6 +161,11 @@ define(function (require) { var overlay = new Overlay(viewportRoot); bmap.addOverlay(overlay); + + // Override + painter.getViewportRootOffset = function () { + return {offsetLeft: 0, offsetTop: 0}; + }; } var bmap = bmapModel.__bmap; diff --git a/src/component/tooltip/TooltipContent.js b/src/component/tooltip/TooltipContent.js index ee53b8aa0e..f054ae92fe 100644 --- a/src/component/tooltip/TooltipContent.js +++ b/src/component/tooltip/TooltipContent.js @@ -219,10 +219,10 @@ define(function (require) { // the sibling of canvas root. So padding of ec container // should be considered here. var zr = this._zr; - var viewportRoot; - if (zr && zr.painter && (viewportRoot = zr.painter.getViewportRoot())) { - x += viewportRoot.offsetLeft || 0; - y += viewportRoot.offsetTop || 0; + var viewportRootOffset; + if (zr && zr.painter && (viewportRootOffset = zr.painter.getViewportRootOffset())) { + x += viewportRootOffset.offsetLeft; + y += viewportRootOffset.offsetTop; } var style = this.el.style;