From dbb4e2f5c55e3bad246bce890ed8ebfaee1e70b2 Mon Sep 17 00:00:00 2001 From: lifenglu Date: Fri, 25 Jan 2019 10:05:46 +0800 Subject: [PATCH] fixed #60 --- src/overlay/base/CanvasOverlay.js | 15 +++++++++++++-- src/overlay/base/Parameter.js | 17 +++++++++++------ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/overlay/base/CanvasOverlay.js b/src/overlay/base/CanvasOverlay.js index 5940014..41f95e5 100644 --- a/src/overlay/base/CanvasOverlay.js +++ b/src/overlay/base/CanvasOverlay.js @@ -5,6 +5,7 @@ import { setDevicePixelRatio, isString, isArray, + detectmob, isFunction } from '../../common/Util'; import { @@ -14,6 +15,7 @@ import { import Toolbar from '../../map/Toolbar'; import ToolTip from '../../map/ToolTip'; let zIndex = 0; +const isMobile = detectmob(); export default class CanvasOverlay extends BaseClass { constructor(opts) { @@ -58,7 +60,12 @@ export default class CanvasOverlay extends BaseClass { map.addEventListener('zoomstart', this._tOnZoomstart); map.addEventListener('zoomend', this._tOnZoomend); map.addEventListener('mousemove', this._tMousemove); - map.addEventListener('click', this._tMouseClick); + if (isMobile) { + map.addEventListener('touchstart', this._tMouseClick); + } else { + map.addEventListener('click', this._tMouseClick); + } + if (!map._inmapToolBar) { map._inmapToolBar = new Toolbar(map.getContainer()); } @@ -215,7 +222,11 @@ export default class CanvasOverlay extends BaseClass { this._map.removeEventListener('zoomend', this._tOnZoomend); this._map.removeEventListener('moving', this._tOnMoving); this._map.removeEventListener('mousemove', this._tMousemove); - this._map.removeEventListener('click', this._tMouseClick); + if (isMobile) { + this._map.removeEventListener('touchstart', this._tMouseClick); + } else { + this._map.removeEventListener('click', this._tMouseClick); + } } diff --git a/src/overlay/base/Parameter.js b/src/overlay/base/Parameter.js index ee8d329..c6eb258 100644 --- a/src/overlay/base/Parameter.js +++ b/src/overlay/base/Parameter.js @@ -279,13 +279,18 @@ export default class Parameter extends CanvasOverlay { */ _setlegend(legendConfig, list) { if (!this._map) return; - let option = {}; - //legendConfig.list has a higher priority than list - if (!(legendConfig.list && legendConfig.list.length > 0)) { - option = merge(legendConfig, { - list: list - }); + let option = { + }; + if ((legendConfig.list && legendConfig.list.length > 0)) { + option = { + ...legendConfig + }; + } else { + option = { + ...legendConfig, + list + }; } this.legend.setOption(option); }