{"version":3,"file":"ol-echarts.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":["VERSION","tslib_1.__extends","Map","transform","obj"],"mappings":"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"}