cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
109 lines (108 loc) • 3.86 kB
JavaScript
import { __extends } from "../../../../tslib/tslib.es6.mjs";
import MapDraw from "../../component/helper/MapDraw.mjs";
import ChartView from "../../view/Chart.mjs";
import { setLabelStyle, getLabelStatesModels } from "../../label/labelStyle.mjs";
import { Z2_EMPHASIS_LIFT, setStatesFlag } from "../../util/states.mjs";
import Circle from "../../../../zrender/lib/graphic/shape/Circle.mjs";
var MapView = function(_super) {
__extends(MapView2, _super);
function MapView2() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.type = MapView2.type;
return _this;
}
MapView2.prototype.render = function(mapModel, ecModel, api, payload) {
if (payload && payload.type === "mapToggleSelect" && payload.from === this.uid) {
return;
}
var group = this.group;
group.removeAll();
if (mapModel.getHostGeoModel()) {
return;
}
if (this._mapDraw && payload && payload.type === "geoRoam") {
this._mapDraw.resetForLabelLayout();
}
if (!(payload && payload.type === "geoRoam" && payload.componentType === "series" && payload.seriesId === mapModel.id)) {
if (mapModel.needsDrawMap) {
var mapDraw = this._mapDraw || new MapDraw(api);
group.add(mapDraw.group);
mapDraw.draw(mapModel, ecModel, api, this, payload);
this._mapDraw = mapDraw;
} else {
this._mapDraw && this._mapDraw.remove();
this._mapDraw = null;
}
} else {
var mapDraw = this._mapDraw;
mapDraw && group.add(mapDraw.group);
}
mapModel.get("showLegendSymbol") && ecModel.getComponent("legend") && this._renderSymbols(mapModel, ecModel, api);
};
MapView2.prototype.remove = function() {
this._mapDraw && this._mapDraw.remove();
this._mapDraw = null;
this.group.removeAll();
};
MapView2.prototype.dispose = function() {
this._mapDraw && this._mapDraw.remove();
this._mapDraw = null;
};
MapView2.prototype._renderSymbols = function(mapModel, ecModel, api) {
var originalData = mapModel.originalData;
var group = this.group;
originalData.each(originalData.mapDimension("value"), function(value, originalDataIndex) {
if (isNaN(value)) {
return;
}
var layout = originalData.getItemLayout(originalDataIndex);
if (!layout || !layout.point) {
return;
}
var point = layout.point;
var offset = layout.offset;
var circle = new Circle({
style: {
fill: mapModel.getData().getVisual("style").fill
},
shape: {
cx: point[0] + offset * 9,
cy: point[1],
r: 3
},
silent: true,
z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)
});
if (!offset) {
var fullData = mapModel.mainSeries.getData();
var name_1 = originalData.getName(originalDataIndex);
var fullIndex_1 = fullData.indexOfName(name_1);
var itemModel = originalData.getItemModel(originalDataIndex);
var labelModel = itemModel.getModel("label");
var regionGroup = fullData.getItemGraphicEl(fullIndex_1);
setLabelStyle(circle, getLabelStatesModels(itemModel), {
labelFetcher: {
getFormattedLabel: function(idx, state) {
return mapModel.getFormattedLabel(fullIndex_1, state);
}
},
defaultText: name_1
});
circle.disableLabelAnimation = true;
if (!labelModel.get("position")) {
circle.setTextConfig({
position: "bottom"
});
}
regionGroup.onHoverStateChange = function(toState) {
setStatesFlag(circle, toState);
};
}
group.add(circle);
});
};
MapView2.type = "map";
return MapView2;
}(ChartView);
var MapView$1 = MapView;
export { MapView$1 as default };