UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

108 lines (107 loc) 3.92 kB
import "../../../../echarts/lib/echarts.mjs"; import componentViewControlMixin from "../../component/common/componentViewControlMixin.mjs"; import componentPostEffectMixin from "../../component/common/componentPostEffectMixin.mjs"; import componentLightMixin from "../../component/common/componentLightMixin.mjs"; import componentShadingMixin from "../../component/common/componentShadingMixin.mjs"; import geo3DModelMixin from "../../coord/geo3D/geo3DModelMixin.mjs"; import formatUtil from "../../util/format.mjs"; import formatTooltip from "../common/formatTooltip.mjs"; import geo3DCreator from "../../coord/geo3DCreator.mjs"; import SeriesModel from "../../../../echarts/lib/model/Series.mjs"; import { createDimensions } from "../../../../echarts/lib/data/helper/createDimensions.mjs"; import SeriesData from "../../../../echarts/lib/data/SeriesData.mjs"; import Model from "../../../../echarts/lib/model/Model.mjs"; import { merge } from "../../../../zrender/lib/core/util.mjs"; function transformPolygon(mapbox3DCoordSys, poly) { var newPoly = []; for (var k = 0; k < poly.length; k++) { newPoly.push(mapbox3DCoordSys.dataToPoint(poly[k])); } return newPoly; } var Map3DSeries = SeriesModel.extend({ type: "series.map3D", layoutMode: "box", coordinateSystem: null, visualStyleAccessPath: "itemStyle", optionUpdated: function(newOpt) { var coordSysType = this.get("coordinateSystem"); if (coordSysType == null || coordSysType === "geo3D") { return; } if (this.get("groundPlane.show")) { this.option.groundPlane.show = false; } this._geo = null; }, getInitialData: function(option) { option.data = this.getFilledRegions(option.data, option.map); var dimensions = createDimensions(option.data, { coordDimensions: ["value"] }); var list = new SeriesData(dimensions, this); list.initData(option.data); var regionModelMap = {}; list.each(function(idx) { var name = list.getName(idx); var itemModel = list.getItemModel(idx); regionModelMap[name] = itemModel; }); this._regionModelMap = regionModelMap; return list; }, formatTooltip: function(dataIndex) { return formatTooltip(this, dataIndex); }, getRegionModel: function(idx) { var name = this.getData().getName(idx); return this._regionModelMap[name] || new Model(null, this); }, getRegionPolygonCoords: function(idx) { var coordSys = this.coordinateSystem; var name = this.getData().getName(idx); if (coordSys.transform) { var region = coordSys.getRegion(name); return region ? region.geometries : []; } else { if (!this._geo) { this._geo = geo3DCreator.createGeo3D(this); } var region = this._geo.getRegion(name); var ret = []; for (var k = 0; k < region.geometries.length; k++) { var geo = region.geometries[k]; var interiors = []; var exterior = transformPolygon(coordSys, geo.exterior); if (interiors && interiors.length) { for (var m = 0; m < geo.interiors.length; m++) { interiors.push(transformPolygon(coordSys, interiors[m])); } } ret.push({ interiors, exterior }); } return ret; } }, getFormattedLabel: function(dataIndex, status) { var text = formatUtil.getFormattedLabel(this, dataIndex, status); if (text == null) { text = this.getData().getName(dataIndex); } return text; }, defaultOption: { coordinateSystem: "geo3D", data: null } }); merge(Map3DSeries.prototype, geo3DModelMixin); merge(Map3DSeries.prototype, componentViewControlMixin); merge(Map3DSeries.prototype, componentPostEffectMixin); merge(Map3DSeries.prototype, componentLightMixin); merge(Map3DSeries.prototype, componentShadingMixin); var Map3DSeries$1 = Map3DSeries; export { Map3DSeries$1 as default };