Load.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import { dataService } from "./Service/DataService.js";
  2. import { lineService } from "./Service/LineService.js";
  3. import { pointService } from "./Service/PointService.js";
  4. import { imageService } from "./Service/ImageService.js";
  5. import VectorCategory from "./enum/VectorCategory.js";
  6. import { coordinate } from "./Coordinate.js";
  7. import { circleService } from "./Service/CircleService.js";
  8. import { magnifierService } from "./Service/MagnifierService.js";
  9. import { textService } from "./Service/TextService.js";
  10. export default class Load {
  11. constructor(layer) {
  12. this.layer = layer;
  13. this.version = "v1.0";
  14. this.vectorsJson = null;
  15. this.newVectorId = null;
  16. }
  17. async load(dataLocal, data3d) {
  18. if (dataLocal) {
  19. if (dataLocal.backgroundImg) {
  20. let bgImg = imageService.create(
  21. dataLocal.backgroundImg.src,
  22. dataLocal.backgroundImg.vectorId
  23. );
  24. bgImg.setCenter(dataLocal.backgroundImg.center);
  25. bgImg.setDisplay(dataLocal.backgroundImg.display);
  26. bgImg.setAngle(dataLocal.backgroundImg.angle);
  27. try {
  28. if (dataLocal.backgroundImg.src) {
  29. await bgImg.setImageData();
  30. }
  31. } catch (e) {}
  32. }
  33. if (dataLocal.circles) {
  34. for (let key in dataLocal.circles) {
  35. let circle = circleService.create(
  36. dataLocal.circles[key].center,
  37. dataLocal.circles[key].radius,
  38. key
  39. );
  40. circle.setPoints(dataLocal.circles[key].points);
  41. circle.setColor(dataLocal.circles[key].color);
  42. circle.setDisplay(dataLocal.circles[key].display);
  43. }
  44. }
  45. if (dataLocal.magnifiers) {
  46. for (let key in dataLocal.magnifiers) {
  47. let magnifier = magnifierService.create(
  48. dataLocal.magnifiers[key].position,
  49. key
  50. );
  51. magnifier.setSrc(dataLocal.magnifiers[key].photoUrl);
  52. magnifier.setDisplay(dataLocal.magnifiers[key].display);
  53. try {
  54. if (dataLocal.magnifiers[key].photoUrl) {
  55. await magnifier.setImageData();
  56. }
  57. } catch (e) {}
  58. }
  59. }
  60. if (dataLocal.texts) {
  61. for (let key in dataLocal.texts) {
  62. let text = textService.create(dataLocal.texts[key].center, key);
  63. text.setValue(dataLocal.texts[key].value);
  64. text.setFontSize(dataLocal.texts[key].fontSize);
  65. text.setColor(dataLocal.texts[key].color);
  66. text.setDisplay(dataLocal.texts[key].display);
  67. }
  68. }
  69. if (dataLocal.points) {
  70. for (let key in dataLocal.points) {
  71. let point = pointService.create(
  72. { x: dataLocal.points[key].x, y: dataLocal.points[key].y },
  73. dataLocal.points[key].category,
  74. key
  75. );
  76. point.setParent(
  77. JSON.parse(JSON.stringify(dataLocal.points[key].parent))
  78. );
  79. point.setDisplay(dataLocal.points[key].display);
  80. }
  81. }
  82. if (dataLocal.lines) {
  83. for (let key in dataLocal.lines) {
  84. let line = lineService.createByPointId(
  85. dataLocal.lines[key].startId,
  86. dataLocal.lines[key].endId,
  87. dataLocal.lines[key].category,
  88. key
  89. );
  90. if (dataLocal.lines[key].arrowColor) {
  91. line.setArrowColor(dataLocal.lines[key].arrowColor);
  92. }
  93. line.setDisplay(dataLocal.lines[key].display);
  94. }
  95. }
  96. if (dataLocal.hasOwnProperty("currentId")) {
  97. dataService.setCurrentId(dataLocal.currentId);
  98. }
  99. }
  100. if (data3d) {
  101. if (data3d.backImage) {
  102. let bgImg = imageService.create(data3d.backImage, data3d.vectorId);
  103. bgImg.setCenter(coordinate.center);
  104. try {
  105. if (bgImg.src) {
  106. await bgImg.setImageData();
  107. }
  108. } catch (e) {}
  109. }
  110. if (data3d.baseLines) {
  111. for (let i = 0; i < data3d.baseLines.length; ++i) {
  112. //理论上基准线只能有一条
  113. lineService.create(
  114. data3d.baseLines[i][0],
  115. data3d.baseLines[i][1],
  116. VectorCategory.Line.BaseLine
  117. );
  118. }
  119. }
  120. if (data3d.measures) {
  121. for (let i = 0; i < data3d.measures.length; ++i) {
  122. //理论上基准线只能有一条
  123. lineService.create(
  124. data3d.measures[i][0],
  125. data3d.measures[i][1],
  126. VectorCategory.Line.MeasureLine
  127. );
  128. }
  129. }
  130. if (data3d.basePoints) {
  131. for (let i = 0; i < data3d.basePoints.length; ++i) {
  132. pointService.create(
  133. data3d.basePoints[i],
  134. VectorCategory.Point.BasePoint
  135. );
  136. }
  137. }
  138. if (data3d.fixPoints) {
  139. for (let i = 0; i < data3d.fixPoints.length; ++i) {
  140. pointService.create(
  141. data3d.fixPoints[i],
  142. VectorCategory.Point.FixPoint
  143. );
  144. }
  145. }
  146. }
  147. this.layer.history.init();
  148. this.layer.renderer.autoRedraw();
  149. }
  150. save() {
  151. return dataService.vectorData;
  152. }
  153. // 退出页面清除缓存及其他操作
  154. clear() {
  155. console.warn("clear");
  156. }
  157. }