geo.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. var echarts = require("../echarts");
  2. var zrUtil = require("zrender/lib/core/util");
  3. require("../coord/geo/GeoModel");
  4. require("../coord/geo/geoCreator");
  5. require("./geo/GeoView");
  6. require("../action/geoRoam");
  7. function makeAction(method, actionInfo) {
  8. actionInfo.update = 'updateView';
  9. echarts.registerAction(actionInfo, function (payload, ecModel) {
  10. var selected = {};
  11. ecModel.eachComponent({
  12. mainType: 'geo',
  13. query: payload
  14. }, function (geoModel) {
  15. geoModel[method](payload.name);
  16. var geo = geoModel.coordinateSystem;
  17. zrUtil.each(geo.regions, function (region) {
  18. selected[region.name] = geoModel.isSelected(region.name) || false;
  19. });
  20. });
  21. return {
  22. selected: selected,
  23. name: payload.name
  24. };
  25. });
  26. }
  27. makeAction('toggleSelected', {
  28. type: 'geoToggleSelect',
  29. event: 'geoselectchanged'
  30. });
  31. makeAction('select', {
  32. type: 'geoSelect',
  33. event: 'geoselected'
  34. });
  35. makeAction('unSelect', {
  36. type: 'geoUnSelect',
  37. event: 'geounselected'
  38. });