linesLayout.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. var _config = require("../../config");
  2. var __DEV__ = _config.__DEV__;
  3. function _default(ecModel) {
  4. ecModel.eachSeriesByType('lines', function (seriesModel) {
  5. var coordSys = seriesModel.coordinateSystem;
  6. var lineData = seriesModel.getData(); // FIXME Use data dimensions ?
  7. lineData.each(function (idx) {
  8. var itemModel = lineData.getItemModel(idx);
  9. var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.get('coords');
  10. var pts = [];
  11. if (seriesModel.get('polyline')) {
  12. for (var i = 0; i < coords.length; i++) {
  13. pts.push(coordSys.dataToPoint(coords[i]));
  14. }
  15. } else {
  16. pts[0] = coordSys.dataToPoint(coords[0]);
  17. pts[1] = coordSys.dataToPoint(coords[1]);
  18. var curveness = itemModel.get('lineStyle.normal.curveness');
  19. if (+curveness) {
  20. pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness];
  21. }
  22. }
  23. lineData.setItemLayout(idx, pts);
  24. });
  25. });
  26. }
  27. module.exports = _default;