cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
108 lines (107 loc) • 3.92 kB
JavaScript
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 };