area.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /**
  2. * @fileOverview area geometry
  3. * @author dxq613 @gmail.com
  4. * @author sima.zhang1990@gmail.com
  5. */
  6. import Geom from './base';
  7. import { splitArray } from './shape/util';
  8. import { each } from '../util/common';
  9. import './shape/area';
  10. class Area extends Geom {
  11. /**
  12. * get the default configuration
  13. * @protected
  14. * @return {Object} return the result
  15. */
  16. getDefaultCfg() {
  17. var cfg = super.getDefaultCfg();
  18. cfg.type = 'area';
  19. cfg.shapeType = 'area';
  20. cfg.generatePoints = true;
  21. cfg.sortable = true;
  22. return cfg;
  23. }
  24. draw(data, shapeFactory) {
  25. var self = this;
  26. var container = self.get('container');
  27. var cfg = this.getDrawCfg(data[0]);
  28. var yScale = self.getYScale();
  29. var connectNulls = self.get('connectNulls');
  30. var splitArrayfn = splitArray(data, yScale.field, connectNulls);
  31. cfg.origin = data;
  32. each(splitArrayfn, function (subData, splitedIndex) {
  33. cfg.splitedIndex = splitedIndex;
  34. var points = subData.map(function (obj) {
  35. return obj.points;
  36. });
  37. cfg.points = points;
  38. self.drawShape(cfg.shape, data[0], cfg, container, shapeFactory);
  39. });
  40. }
  41. }
  42. Geom.Area = Area;
  43. export default Area;