MCPcopy Index your code
hub / github.com/SuperMap/iClient-JavaScript / pieLayout

Function pieLayout

libs/echarts/echarts-en.simple.js:44249–44390  ·  view source on GitHub ↗
(seriesType, ecModel, api, payload)

Source from the content-addressed store, hash-verified

44247}
44248
44249var pieLayout = function (seriesType, ecModel, api, payload) {
44250 ecModel.eachSeriesByType(seriesType, function (seriesModel) {
44251 var data = seriesModel.getData();
44252 var valueDim = data.mapDimension('value');
44253 var viewRect = getViewRect(seriesModel, api);
44254
44255 var center = seriesModel.get('center');
44256 var radius = seriesModel.get('radius');
44257
44258 if (!isArray(radius)) {
44259 radius = [0, radius];
44260 }
44261 if (!isArray(center)) {
44262 center = [center, center];
44263 }
44264
44265 var width = parsePercent$1(viewRect.width, api.getWidth());
44266 var height = parsePercent$1(viewRect.height, api.getHeight());
44267 var size = Math.min(width, height);
44268 var cx = parsePercent$1(center[0], width) + viewRect.x;
44269 var cy = parsePercent$1(center[1], height) + viewRect.y;
44270 var r0 = parsePercent$1(radius[0], size / 2);
44271 var r = parsePercent$1(radius[1], size / 2);
44272
44273 var startAngle = -seriesModel.get('startAngle') * RADIAN;
44274
44275 var minAngle = seriesModel.get('minAngle') * RADIAN;
44276
44277 var validDataCount = 0;
44278 data.each(valueDim, function (value) {
44279 !isNaN(value) && validDataCount++;
44280 });
44281
44282 var sum = data.getSum(valueDim);
44283 // Sum may be 0
44284 var unitRadian = Math.PI / (sum || validDataCount) * 2;
44285
44286 var clockwise = seriesModel.get('clockwise');
44287
44288 var roseType = seriesModel.get('roseType');
44289 var stillShowZeroSum = seriesModel.get('stillShowZeroSum');
44290
44291 // [0...max]
44292 var extent = data.getDataExtent(valueDim);
44293 extent[0] = 0;
44294
44295 // In the case some sector angle is smaller than minAngle
44296 var restAngle = PI2$4;
44297 var valueSumLargerThanMinAngle = 0;
44298
44299 var currentAngle = startAngle;
44300 var dir = clockwise ? 1 : -1;
44301
44302 data.each(valueDim, function (value, idx) {
44303 var angle;
44304 if (isNaN(value)) {
44305 data.setItemLayout(idx, {
44306 angle: NaN,

Callers

nothing calls this directly

Calls 11

minMethod · 0.80
getSumMethod · 0.80
getViewRectFunction · 0.70
isArrayFunction · 0.70
parsePercent$1Function · 0.70
linearMapFunction · 0.70
labelLayoutFunction · 0.70
getDataMethod · 0.45
getMethod · 0.45
getWidthMethod · 0.45
getHeightMethod · 0.45

Tested by

no test coverage detected