{"version":3,"file":"ol-echarts.esm.js","sources":["../src/utils/index.ts","../src/utils/formatGeoJSON.ts","../src/charts/pie.ts","../src/charts/bar.ts","../src/charts/line.ts","../src/index.ts"],"sourcesContent":["/**\n * 判断是否为对象\n * @param value\n * @returns {boolean}\n */\nconst isObject = (value: any): boolean => {\n const type = typeof value;\n return value !== null && (type === 'object' || type === 'function');\n};\n\n/**\n * merge\n * @param a\n * @param b\n * @returns {*}\n */\nconst merge = (a: any, b: any): any => {\n Object.keys(b).forEach(key => {\n if (isObject(b[key]) && isObject(a[key])) {\n merge(a[key], b[key]);\n } else {\n a[key] = b[key];\n }\n });\n return a;\n};\n\n/**\n * bind context\n * @param func\n * @param context\n * @param args\n */\nconst bind = function (func: Function, context: any, ...args: any[]): Function {\n return function (...innerArgs: any[]) {\n return func.apply(context, args.concat(Array.prototype.slice.call(innerArgs)));\n };\n};\n\n/**\n * add own item\n * @param array\n * @param item\n */\nconst arrayAdd = function (array: any[], item: any): any[] {\n let i = 0;\n let index;\n const length = array.length;\n for (; i < length; i++) {\n if (array[i].index === item.index) {\n index = i;\n break;\n }\n }\n if (index === undefined) {\n array.push(item);\n } else {\n array[index] = item;\n }\n return array;\n};\n\nconst uuid = function (): string {\n function rd(a?: number | undefined) {\n // eslint-disable-next-line no-mixed-operators,no-bitwise\n return a ? (a ^ Math.random() * 16 >> a / 4).toString(16)\n // @ts-ignore\n : ([1e7] + -[1e3] + -4e3 + -8e3 + -1e11).replace(/[018]/g, rd);\n }\n return rd();\n};\n\n/**\n * bind function array\n * @param fns\n * @param context\n */\nfunction bindAll(fns: string[] | number[], context: any) {\n fns.forEach((fn: string | number) => {\n if (!context[fn]) { return; }\n context[fn] = context[fn].bind(context);\n });\n}\n\n/**\n * remove node\n * @param node\n */\nfunction removeNode(node: HTMLElement) {\n return node && node.parentNode ? node.parentNode.removeChild(node) : null;\n}\n\n/**\n * mock zrender mouse event\n * @param type\n * @param event\n */\nfunction mockEvent(type: string, event: any) {\n const e = new MouseEvent(type, {\n // set bubbles, so zrender can receive the mock event. ref: https://dom.spec.whatwg.org/#interface-event\n // \"event.bubbles\": Returns true or false depending on how event was initialized.\n // True if event goes through its target’s ancestors in reverse tree order, and false otherwise\n bubbles: true,\n cancelable: true,\n button: event.pointerEvent.button,\n buttons: event.pointerEvent.buttons,\n clientX: event.pointerEvent.clientX,\n clientY: event.pointerEvent.clientY,\n // @ts-ignore\n zrX: event.pointerEvent.offsetX,\n zrY: event.pointerEvent.offsetY,\n movementX: event.pointerEvent.movementX,\n movementY: event.pointerEvent.movementY,\n relatedTarget: event.pointerEvent.relatedTarget,\n screenX: event.pointerEvent.screenX,\n screenY: event.pointerEvent.screenY,\n view: window,\n });\n e.zrX = event.pointerEvent.offsetX;\n e.zrY = event.pointerEvent.offsetY;\n e.event = e;\n return e;\n}\n\nexport function semver(a: string, b: string) {\n const pa = a.split('.');\n const pb = b.split('.');\n for (let i = 0; i < 3; i++) {\n const na = Number(pa[i]);\n const nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(na) && isNaN(nb)) return 1;\n // eslint-disable-next-line no-restricted-globals\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n return 0;\n}\n\nexport {\n merge,\n isObject,\n bind,\n arrayAdd,\n uuid,\n bindAll,\n removeNode,\n mockEvent,\n};\n","/**\n * form https://github.com/ecomfe/echarts/blob/master/src/coord/geo/parseGeoJson.js\n */\nimport echarts from 'echarts';\n\n/**\n * check is decoded\n * @param json\n * @returns {boolean}\n */\nconst checkDecoded = (json: any) => !json.UTF8Encoding;\n\n/**\n * decode polygon\n * @param coordinate\n * @param encodeOffsets\n * @param encodeScale\n * @returns {null}\n */\nconst decodePolygon = (\n coordinate: { length: number; charCodeAt: { (arg0: number): number; (arg0: number): number } },\n encodeOffsets: any[], encodeScale: number,\n) => {\n const result = [];\n let [prevX, prevY] = [encodeOffsets[0], encodeOffsets[1]];\n for (let i = 0; i < coordinate.length; i += 2) {\n let x = coordinate.charCodeAt(i) - 64;\n let y = coordinate.charCodeAt(i + 1) - 64;\n // ZigZag decoding\n // eslint-disable-next-line no-bitwise\n x = (x >> 1) ^ -(x & 1);\n // eslint-disable-next-line no-bitwise\n y = (y >> 1) ^ -(y & 1);\n // Delta deocding\n x += prevX;\n y += prevY;\n prevX = x;\n prevY = y;\n // @ts-ignore\n result.push([x / encodeScale, y / encodeScale]);\n }\n return result;\n};\n\n/**\n * decode json\n * @param json\n * @returns {*}\n */\nconst decode = (json: any) => {\n if (checkDecoded(json)) {\n return json;\n }\n let encodeScale = json.UTF8Scale;\n if (encodeScale == null) {\n encodeScale = 1024;\n }\n const features = json.features;\n for (let f = 0; f < features.length; f++) {\n const feature = features[f];\n const geometry = feature.geometry;\n const [coordinates, encodeOffsets] = [geometry.coordinates, geometry.encodeOffsets];\n for (let c = 0; c < coordinates.length; c++) {\n const coordinate = coordinates[c];\n if (geometry.type === 'Polygon') {\n coordinates[c] = decodePolygon(coordinate, encodeOffsets[c], encodeScale);\n } else if (geometry.type === 'MultiPolygon') {\n for (let c2 = 0; c2 < coordinate.length; c2++) {\n const polygon = coordinate[c2];\n coordinate[c2] = decodePolygon(polygon, encodeOffsets[c][c2], encodeScale);\n }\n }\n }\n }\n json.UTF8Encoding = false;\n return json;\n};\n\n/**\n * decode geoJson\n * @param json\n */\nexport default function (json: any) {\n const geoJson = decode(json);\n // @ts-ignore\n const _features = echarts.util.map(\n // @ts-ignore\n echarts.util.filter(geoJson.features,\n (featureObj: { geometry: { coordinates: { length: number } }; properties: any }) =>\n // Output of mapshaper may have geometry null\n featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0),\n (featureObj: { properties: any; geometry: any }) => {\n const properties = featureObj.properties;\n const geo = featureObj.geometry;\n const coordinates = geo.coordinates;\n const geometries = [];\n if (geo.type === 'Polygon') {\n geometries.push(coordinates[0]);\n }\n if (geo.type === 'MultiPolygon') {\n // @ts-ignore\n echarts.util.each(coordinates, (item: any[]) => {\n if (item[0]) {\n geometries.push(item[0]);\n }\n });\n }\n return {\n properties,\n type: 'Feature',\n geometry: {\n type: 'Polygon',\n coordinates: geometries,\n },\n };\n },\n );\n return {\n type: 'FeatureCollection',\n crs: {},\n features: _features,\n };\n}\n","const pie = function (\n _options: any,\n serie: { center: any; coordinates: number[] },\n coordinateSystem: { dataToPoint: (arg0: any) => any },\n) {\n serie.center = coordinateSystem.dataToPoint(serie.coordinates);\n return serie;\n};\n\nexport default pie;\n","import { isObject } from '../utils';\n\nconst bar = function (\n options: {\n grid: { map: (arg0: (gri: any, index: any) => any) => void };\n series: { [x: string]: { coordinates: number[] } };\n },\n serie: any,\n coordinateSystem: { dataToPoint: (arg0: any) => any },\n) {\n if (isObject(options.grid) && !Array.isArray(options.grid)) {\n console.log(options);\n } else if (Array.isArray(options.grid)) {\n options.grid = options.grid.map((gri, index) => {\n const coorPixel: number[] = coordinateSystem.dataToPoint(options.series[index].coordinates);\n gri.left = coorPixel[0] - parseFloat(gri.width) / 2;\n gri.top = coorPixel[1] - parseFloat(gri.height) / 2;\n return gri;\n });\n }\n return serie;\n};\n\nexport default bar;\n","import { isObject } from '../utils';\n\nconst line = function (\n options: any,\n serie: any,\n coordinateSystem: any,\n) {\n if (isObject(options.grid) && !Array.isArray(options.grid)) {\n console.log(options);\n } else if (Array.isArray(options.grid)) {\n options.grid = options.grid.map((gri: any, index: number) => {\n const coorPixel: number[] = coordinateSystem.dataToPoint(options.series[index].coordinates);\n gri.left = coorPixel[0] - parseFloat(gri.width) / 2;\n gri.top = coorPixel[1] - parseFloat(gri.height) / 2;\n return gri;\n });\n }\n return serie;\n};\n\nexport default line;\n","import { Map, Object as obj, VERSION } from 'ol';\nimport { ProjectionLike, transform } from 'ol/proj';\nimport Event from 'ol/events/Event';\nimport { Coordinate } from 'ol/coordinate';\nimport echarts from 'echarts';\n\nimport {\n isObject, merge,\n arrayAdd, bind,\n uuid, bindAll,\n removeNode,\n mockEvent,\n semver,\n} from './utils';\nimport formatGeoJSON from './utils/formatGeoJSON';\n\nimport * as charts from './charts/index';\n\ntype charts = any;\n\nconst _options = {\n forcedRerender: false, // Force re-rendering\n forcedPrecomposeRerender: false, // force pre re-render\n hideOnZooming: false, // when zooming hide chart\n hideOnMoving: false, // when moving hide chart\n hideOnRotating: false, // // when Rotating hide chart\n convertTypes: ['pie', 'line', 'bar'],\n insertFirst: false,\n stopEvent: false,\n polyfillEvents: semver(VERSION, '6.1.1') <= 0, // fix echarts mouse events\n};\n\ntype Nullable = T | null;\ntype NoDef = T | undefined;\n\ninterface OptionsTypes {\n source?: ProjectionLike;\n destination?: ProjectionLike;\n forcedRerender?: boolean;\n forcedPrecomposeRerender?: boolean;\n hideOnZooming?: boolean;\n hideOnMoving?: boolean;\n hideOnRotating?: boolean;\n convertTypes?: string[] | number[];\n insertFirst?: boolean;\n stopEvent?: boolean;\n polyfillEvents?: boolean;\n [key: string]: any;\n}\n\nclass EChartsLayer extends obj {\n public static formatGeoJSON = formatGeoJSON;\n\n public static bind = bind;\n\n public static merge = merge;\n\n public static uuid = uuid;\n\n public static bindAll = bindAll;\n\n public static arrayAdd = arrayAdd;\n\n public static removeNode = removeNode;\n\n public static isObject = isObject;\n\n private _chartOptions: NoDef>;\n\n private _isRegistered: boolean;\n\n private _incremental: any[];\n\n private _coordinateSystem: Nullable;\n\n private coordinateSystemId: string;\n\n private readonly _options: OptionsTypes;\n\n private _initEvent: boolean;\n\n private prevVisibleState: string | null;\n\n public $chart: Nullable;\n\n public $container: NoDef;\n\n public _map: any;\n\n constructor(chartOptions?: NoDef>, options?: NoDef>, map?: any) {\n const opts = Object.assign(_options, options);\n super(opts);\n\n /**\n * layer options\n */\n this._options = opts;\n\n /**\n * chart options\n */\n this._chartOptions = chartOptions;\n this.set('chartOptions', chartOptions); // cache chart Options\n\n /**\n * chart instance\n * @type {null}\n */\n this.$chart = null;\n\n /**\n * chart element\n * @type {undefined}\n */\n this.$container = undefined;\n\n /**\n * Whether the relevant configuration has been registered\n * @type {boolean}\n * @private\n */\n this._isRegistered = false;\n\n /**\n * check if init\n */\n this._initEvent = false;\n\n /**\n * 增量数据存放\n * @type {Array}\n * @private\n */\n this._incremental = [];\n\n /**\n * coordinate system\n * @type {null}\n * @private\n */\n this._coordinateSystem = null;\n\n /**\n * coordinateSystemId\n */\n this.coordinateSystemId = '';\n\n this.prevVisibleState = '';\n\n bindAll([\n 'redraw', 'onResize', 'onZoomEnd', 'onCenterChange',\n 'onDragRotateEnd', 'onMoveStart', 'onMoveEnd',\n 'mouseDown', 'mouseUp', 'onClick', 'mouseMove',\n ], this);\n\n if (map) this.setMap(map);\n }\n\n /**\n * append layer to map\n * @param map\n * @param forceIgnore\n */\n public appendTo(map: any, forceIgnore = false) {\n this.setMap(map, forceIgnore);\n }\n\n /**\n * get ol map\n * @returns {ol.Map}\n */\n public getMap() {\n return this._map;\n }\n\n /**\n * set map\n * @param map\n * @param forceIgnore 是否忽略instanceof检查\n */\n public setMap(map: any, forceIgnore = false) {\n if (map && (forceIgnore || map instanceof Map)) {\n this._map = map;\n this._map.once('postrender', () => {\n this.handleMapChanged();\n });\n this._map.renderSync();\n } else {\n throw new Error('not ol map object');\n }\n }\n\n /**\n * get echarts options\n */\n public getChartOptions(): object | undefined | null {\n return this.get('chartOptions');\n }\n\n /**\n * set echarts options and redraw\n * @param options\n * @returns {EChartsLayer}\n */\n public setChartOptions(options: object = {}) {\n this._chartOptions = options;\n this.set('chartOptions', options);\n this.clearAndRedraw();\n return this;\n }\n\n /**\n * append data\n * @param data\n * @param save\n * @returns {EChartsLayer}\n */\n public appendData(data: any, save: boolean | undefined | null = true) {\n if (data) {\n if (save) {\n this._incremental = arrayAdd(this._incremental, {\n index: this._incremental.length,\n data: data.data,\n seriesIndex: data.seriesIndex,\n });\n }\n // https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/copyWithin\n this.$chart.appendData({\n data: data.data.copyWithin(),\n seriesIndex: data.seriesIndex,\n });\n }\n return this;\n }\n\n /**\n * clear layer\n */\n public clear(keep?: boolean) {\n if (!keep) {\n this._incremental = [];\n }\n if (this.$chart) {\n this.$chart.clear();\n }\n }\n\n /**\n * remove layer\n */\n public remove() {\n this.clear();\n if (this.$chart) {\n this.$chart.dispose();\n }\n\n if (this._initEvent && this.$container) {\n this.$container && removeNode(this.$container);\n this.unBindEvent();\n }\n delete this.$chart;\n delete this._map;\n }\n\n /**\n * show layer\n */\n public show() {\n this.setVisible(true);\n }\n\n private innerShow() {\n if (this.$container) {\n this.$container.style.display = this.prevVisibleState;\n this.prevVisibleState = '';\n }\n }\n\n /**\n * hide layer\n */\n public hide() {\n this.setVisible(false);\n }\n\n private innerHide() {\n if (this.$container) {\n this.prevVisibleState = this.$container.style.display;\n this.$container.style.display = 'none';\n }\n }\n\n /**\n * check layer is visible\n */\n public isVisible() {\n return this.$container && this.$container.style.display !== 'none';\n }\n\n /**\n * show loading bar\n */\n public showLoading() {\n if (this.$chart) {\n this.$chart.showLoading();\n }\n }\n\n /**\n * hide loading bar\n */\n public hideLoading() {\n if (this.$chart) {\n this.$chart.hideLoading();\n }\n }\n\n /**\n * set zindex\n * @param zIndex\n */\n public setZIndex(zIndex: string | number | null) {\n if (this.$container) {\n if (typeof zIndex === 'number') {\n zIndex = String(zIndex);\n }\n this.$container.style.zIndex = zIndex;\n }\n }\n\n /**\n * get zindex\n */\n public getZIndex() {\n return this.$container && this.$container.style.zIndex;\n }\n\n /**\n * set visible\n * from: https://github.com/sakitam-fdd/ol3Echarts/blob/3929ad72f562661ba3511d4d9e360dee5ac793c2/\n * packages/ol-echarts/src/index.js\n * author: https://github.com/ChenGuanglin0924\n * @param visible\n */\n public setVisible(visible: boolean) {\n if (visible) {\n if (this.$container) {\n this.$container.style.display = '';\n }\n this._chartOptions = this.getChartOptions();\n this.clearAndRedraw();\n } else {\n if (this.$container) {\n this.$container.style.display = 'none';\n }\n this.clear(true);\n this._chartOptions = {};\n this.clearAndRedraw();\n }\n }\n\n /**\n * render\n */\n public render() {\n if (!this.$chart && this.$container) {\n // @ts-ignore\n this.$chart = echarts.init(this.$container);\n if (this._chartOptions) {\n this.registerMap();\n this.$chart.setOption(this.convertData(this._chartOptions), false);\n }\n this.dispatchEvent({\n type: 'load',\n source: this,\n value: this.$chart,\n });\n } else if (this.isVisible()) {\n this.redraw();\n }\n }\n\n /**\n * redraw echarts layer\n */\n public redraw() {\n this.clearAndRedraw();\n }\n\n /**\n * update container size\n * @param size\n */\n public updateViewSize(size: number[]): void {\n if (!this.$container) return;\n this.$container.style.width = `${size[0]}px`;\n this.$container.style.height = `${size[1]}px`;\n this.$container.setAttribute('width', String(size[0]));\n this.$container.setAttribute('height', String(size[1]));\n }\n\n /**\n * handle map view resize\n */\n private onResize(event?: any) {\n const map = this.getMap();\n if (map) {\n const size: number[] = map.getSize();\n this.updateViewSize(size);\n this.clearAndRedraw();\n if (event) { // ignore events\n this.dispatchEvent({\n type: 'change:size',\n source: this,\n value: size,\n });\n }\n }\n }\n\n /**\n * handle zoom end events\n */\n private onZoomEnd() {\n this._options.hideOnZooming && this.innerShow();\n const map = this.getMap();\n if (map && map.getView()) {\n this.clearAndRedraw();\n this.dispatchEvent({\n type: 'zoomend',\n source: this,\n value: map.getView().getZoom(),\n });\n }\n }\n\n /**\n * handle rotate end events\n */\n private onDragRotateEnd() {\n this._options.hideOnRotating && this.innerShow();\n const map = this.getMap();\n if (map && map.getView()) {\n this.clearAndRedraw();\n this.dispatchEvent({\n type: 'change:rotation',\n source: this,\n value: map.getView().getRotation(),\n });\n }\n }\n\n /**\n * handle move start events\n */\n private onMoveStart() {\n this._options.hideOnMoving && this.innerHide();\n const map = this.getMap();\n if (map && map.getView()) {\n this.dispatchEvent({\n type: 'movestart',\n source: this,\n value: map.getView().getCenter(),\n });\n }\n }\n\n /**\n * handle move end events\n */\n private onMoveEnd() {\n this._options.hideOnMoving && this.innerShow();\n const map = this.getMap();\n if (map && map.getView()) {\n this.clearAndRedraw();\n this.dispatchEvent({\n type: 'moveend',\n source: this,\n value: map.getView().getCenter(),\n });\n }\n }\n\n /**\n * on mouse click\n * @param event\n */\n private onClick(event: any) {\n if (this.$chart) {\n this.$chart.getZr().painter.getViewportRoot().dispatchEvent(mockEvent('click', event));\n }\n }\n\n /**\n * on mouse down\n * @param event\n */\n private mouseDown(event: any) {\n if (this.$chart) {\n this.$chart.getZr().painter.getViewportRoot().dispatchEvent(mockEvent('mousedown', event));\n }\n }\n\n /**\n * mouse up\n * @param event\n */\n private mouseUp(event: any) {\n if (this.$chart) {\n this.$chart.getZr().painter.getViewportRoot().dispatchEvent(mockEvent('mouseup', event));\n }\n }\n\n /**\n * mousemove 事件需要分两种情况处理:\n * 1. ol-overlaycontainer-stopevent 有高度, 则 propagation path 是 ol-viewport -> ol-overlaycontainer-stopevent.\n * 此时 ol-overlaycontainer 无法获得事件, 只能 mock 处理\n * 2. ol-overlaycontainer-stopevent 没有高度, 则 propagation path 是 ol-viewport -> ol-overlaycontainer. 无需 mock\n * @param event\n */\n private mouseMove(event: any) {\n if (this.$chart) {\n let target = event.originalEvent.target;\n while (target) {\n if (target.className === 'ol-overlaycontainer-stopevent') {\n this.$chart.getZr().painter.getViewportRoot().dispatchEvent(mockEvent('mousemove', event));\n return;\n }\n target = target.parentElement;\n }\n }\n }\n\n /**\n * handle center change\n */\n private onCenterChange() {\n const map = this.getMap();\n if (map && map.getView()) {\n this.clearAndRedraw();\n this.dispatchEvent({\n type: 'change:center',\n source: this,\n value: map.getView().getCenter(),\n });\n }\n }\n\n /**\n * handle map change\n */\n private handleMapChanged() {\n const map = this.getMap();\n if (this._initEvent && this.$container) {\n this.$container && removeNode(this.$container);\n this.unBindEvent();\n }\n\n if (!this.$container) {\n this.createLayerContainer();\n this.onResize(false);\n }\n\n if (map) {\n const container = this._options.stopEvent ? map.getOverlayContainerStopEvent() : map.getOverlayContainer();\n if (this._options.insertFirst) {\n container.insertBefore(this.$container, container.childNodes[0] || null);\n } else {\n container.appendChild(this.$container);\n }\n\n this.render();\n this.bindEvent(map);\n }\n }\n\n /**\n * create container\n */\n private createLayerContainer() {\n this.$container = document.createElement('div');\n this.$container.style.position = 'absolute';\n this.$container.style.top = '0px';\n this.$container.style.left = '0px';\n this.$container.style.right = '0px';\n this.$container.style.bottom = '0px';\n this.$container.style.pointerEvents = 'auto';\n }\n\n /**\n * register events\n * @private\n */\n private bindEvent(map: any) {\n // https://github.com/openlayers/openlayers/issues/7284\n const view = map.getView();\n if (this._options.forcedPrecomposeRerender) {\n map.on('precompose', this.redraw);\n }\n map.on('change:size', this.onResize);\n view.on('change:resolution', this.onZoomEnd);\n view.on('change:center', this.onCenterChange);\n view.on('change:rotation', this.onDragRotateEnd);\n map.on('movestart', this.onMoveStart);\n map.on('moveend', this.onMoveEnd);\n if (this._options.polyfillEvents) {\n map.on('pointerdown', this.mouseDown);\n map.on('pointerup', this.mouseUp);\n map.on('pointermove', this.mouseMove);\n map.on('click', this.onClick);\n }\n this._initEvent = true;\n }\n\n /**\n * un register events\n * @private\n */\n private unBindEvent() {\n const map = this.getMap();\n if (!map) return;\n const view = map.getView();\n if (!view) return;\n map.un('precompose', this.redraw);\n map.un('change:size', this.onResize);\n view.un('change:resolution', this.onZoomEnd);\n view.un('change:center', this.onCenterChange);\n view.un('change:rotation', this.onDragRotateEnd);\n map.un('movestart', this.onMoveStart);\n map.un('moveend', this.onMoveEnd);\n if (this._options.polyfillEvents) {\n map.un('pointerdown', this.mouseDown);\n map.un('pointerup', this.mouseUp);\n map.un('pointermove', this.mouseMove);\n map.un('click', this.onClick);\n }\n this._initEvent = false;\n }\n\n /**\n * clear chart and redraw\n * @private\n */\n private clearAndRedraw() {\n if (!this.$chart || !this.isVisible()) return;\n if (this._options.forcedRerender) {\n this.$chart.clear();\n }\n this.$chart.resize();\n if (this._chartOptions) {\n this.registerMap();\n this.$chart.setOption(this.convertData(this._chartOptions), false);\n if (this._incremental && this._incremental.length > 0) {\n for (let i = 0; i < this._incremental.length; i++) {\n this.appendData(this._incremental[i], false);\n }\n }\n }\n\n this.dispatchEvent({\n type: 'redraw',\n source: this,\n });\n }\n\n /**\n * register map coordinate system\n * @private\n */\n private registerMap() {\n if (!this._isRegistered) {\n this.coordinateSystemId = `openlayers_${uuid()}`;\n // @ts-ignore\n echarts.registerCoordinateSystem(this.coordinateSystemId, this.getCoordinateSystem(this._options));\n this._isRegistered = true;\n }\n\n if (this._chartOptions) {\n // @ts-ignore\n const series = this._chartOptions.series;\n if (series && isObject(series)) {\n const convertTypes = this._options.convertTypes;\n if (convertTypes) {\n for (let i = series.length - 1; i >= 0; i--) {\n if (!(convertTypes.indexOf(series[i].type) > -1)) {\n series[i].coordinateSystem = this.coordinateSystemId;\n }\n series[i].animation = false;\n }\n }\n }\n }\n }\n\n /**\n * 重新处理数据\n * @param options\n * @returns {*}\n */\n private convertData(options: object) {\n // @ts-ignore\n const series = options.series;\n if (series && series.length > 0) {\n if (!this._coordinateSystem) {\n const Rc = this.getCoordinateSystem(this._options);\n // @ts-ignore\n this._coordinateSystem = new Rc(this.getMap());\n }\n if (series && isObject(series)) {\n const convertTypes = this._options.convertTypes;\n if (convertTypes) {\n for (let i = series.length - 1; i >= 0; i--) {\n if (convertTypes.indexOf(series[i].type) > -1) {\n if (series[i] && series[i].hasOwnProperty('coordinates')) {\n // @ts-ignore\n series[i] = charts[series[i].type](options, series[i], this._coordinateSystem);\n }\n }\n }\n }\n }\n }\n return options;\n }\n\n /**\n * register coordinateSystem\n * @param options\n */\n private getCoordinateSystem(options?: OptionsTypes) {\n const map = this.getMap();\n const coordinateSystemId = this.coordinateSystemId;\n\n const RegisterCoordinateSystem = function (map: any) {\n // @ts-ignore\n this.map = map;\n // @ts-ignore\n this._mapOffset = [0, 0];\n // @ts-ignore\n this.dimensions = ['lng', 'lat'];\n // @ts-ignore\n this.projCode = RegisterCoordinateSystem.getProjectionCode(this.map);\n };\n\n RegisterCoordinateSystem.dimensions = RegisterCoordinateSystem.prototype.dimensions || ['lng', 'lat'];\n\n /**\n * get zoom\n * @returns {number}\n */\n RegisterCoordinateSystem.prototype.getZoom = function (): number {\n return this.map.getView().getZoom();\n };\n\n /**\n * set zoom\n * @param zoom\n */\n RegisterCoordinateSystem.prototype.setZoom = function (zoom: number): void {\n return this.map.getView().setZoom(zoom);\n };\n\n RegisterCoordinateSystem.prototype.getViewRectAfterRoam = function () {\n return this.getViewRect().clone();\n };\n\n /**\n * 设置地图窗口的偏移\n * @param mapOffset\n */\n RegisterCoordinateSystem.prototype.setMapOffset = function (mapOffset: number[]): void {\n this._mapOffset = mapOffset;\n };\n\n /**\n * 跟据坐标转换成屏幕像素\n * @param data\n * @returns {}\n */\n RegisterCoordinateSystem.prototype.dataToPoint = function (data: []): number[] {\n let coords: Coordinate;\n if (data && Array.isArray(data) && data.length > 0) {\n coords = data.map((item: string | number): number => {\n let res = 0;\n if (typeof item === 'string') {\n res = Number(item);\n } else {\n res = item;\n }\n return res;\n });\n\n const source: ProjectionLike = (options && options.source) || 'EPSG:4326';\n const destination: ProjectionLike = (options && options.destination) || this.projCode;\n const pixel = this.map.getPixelFromCoordinate(transform(coords, source, destination));\n const mapOffset = this._mapOffset;\n return [pixel[0] - mapOffset[0], pixel[1] - mapOffset[1]];\n }\n return [0, 0];\n };\n\n /**\n * 跟据屏幕像素转换成坐标\n * @param pixel\n * @returns {}\n */\n RegisterCoordinateSystem.prototype.pointToData = function (pixel: number[]): number[] {\n const mapOffset: number[] = this._mapOffset;\n return this.map.getCoordinateFromPixel([pixel[0] + mapOffset[0], pixel[1] + mapOffset[1]]);\n };\n\n /**\n * 获取视图矩形范围\n * @returns {*}\n */\n RegisterCoordinateSystem.prototype.getViewRect = function () {\n const size = this.map.getSize();\n // @ts-ignore\n return new echarts.graphic.BoundingRect(0, 0, size[0], size[1]);\n };\n\n /**\n * create matrix\n */\n RegisterCoordinateSystem.prototype.getRoamTransform = function () {\n // @ts-ignore\n return echarts.matrix.create();\n };\n\n /**\n * 处理自定义图表类型\n * @returns {{coordSys: {type: string, x, y, width, height}, api: {coord, size}}}\n */\n RegisterCoordinateSystem.prototype.prepareCustoms = function () {\n const rect = this.getViewRect();\n return {\n coordSys: {\n type: coordinateSystemId,\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n },\n api: {\n coord: bind(this.dataToPoint, this),\n size: bind(RegisterCoordinateSystem.dataToCoordsSize, this),\n },\n };\n };\n\n RegisterCoordinateSystem.create = function (echartsModel: any) {\n echartsModel.eachSeries((seriesModel: any) => {\n if (seriesModel.get('coordinateSystem') === coordinateSystemId) {\n // @ts-ignore\n seriesModel.coordinateSystem = new RegisterCoordinateSystem(map);\n }\n });\n };\n\n RegisterCoordinateSystem.getProjectionCode = function (map: any): string {\n let code = '';\n if (map) {\n code = map.getView()\n && map\n .getView()\n .getProjection()\n .getCode();\n } else {\n code = 'EPSG:3857';\n }\n return code;\n };\n\n RegisterCoordinateSystem.dataToCoordsSize = function (dataSize: number[], dataItem: number[] = [0, 0]) {\n return [0, 1].map((dimIdx: number) => {\n const val = dataItem[dimIdx];\n const p1: number[] = [];\n const p2: number[] = [];\n const halfSize = dataSize[dimIdx] / 2;\n p1[dimIdx] = val - halfSize;\n p2[dimIdx] = val + halfSize;\n p1[1 - dimIdx] = dataItem[1 - dimIdx];\n p2[1 - dimIdx] = dataItem[1 - dimIdx];\n // @ts-ignore\n const offset: number = this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx];\n return Math.abs(offset);\n },\n this);\n };\n\n return RegisterCoordinateSystem;\n }\n\n /**\n * dispatch event\n * @param event\n */\n public dispatchEvent(event: object | Event | string) {\n return super.dispatchEvent(event);\n }\n\n public set(key: string, value: any, optSilent?: boolean) {\n return super.set(key, value, optSilent);\n }\n\n public get(key: string) {\n return super.get(key);\n }\n\n public unset(key: string, optSilent?: boolean) {\n return super.unset(key, optSilent);\n }\n\n // @ts-ignore\n public on(type: (string | string[]), listener: (p0: any) => void) {\n return super.on(type, listener);\n }\n\n public un(type: (string | string[]), listener: (p0: any) => void) {\n return super.un(type, listener);\n }\n}\n\nexport default EChartsLayer;\n"],"names":["tslib_1.__extends","obj"],"mappings":"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"}