Load.js 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. import { floorplanService } from "./Service/FloorplanService.js";
  2. import { wallService } from "./Service/WallService.js";
  3. import { tagService } from "./Service/TagService";
  4. import { signService } from "./Service/SignService";
  5. import { rectangleService } from "./Service/RectangleService.js";
  6. import { circleService } from "./Service/CircleService.js";
  7. import { arrowService } from "./Service/ArrowService.js";
  8. import { iconService } from "./Service/IconService.js";
  9. import { tableService } from "./Service/TableService.js";
  10. import { customImageService } from "./Service/CustomImageService.js";
  11. import { bgImageService } from "./Service/BgImageService.js";
  12. export default class Load {
  13. constructor(layer) {
  14. this.layer = layer;
  15. this.version = "v1.1";
  16. this.vectorsJson = null;
  17. }
  18. async load(floorsData) {
  19. // debugger;
  20. if (!floorsData || !floorsData.floors) {
  21. floorplanService.initFloor(0);
  22. //添加标题
  23. const title = floorplanService.createTitle();
  24. floorplanService.addTitle(title);
  25. //添加指南针
  26. const compass = floorplanService.createCompass();
  27. floorplanService.addCompass(compass);
  28. // //添加背景图片
  29. // const bgImage = floorplanService.createBgImage()
  30. // floorplanService.addBgImage(bgImage)
  31. // if(bgImage.url){
  32. // const imageData = await floorplanService.loadImageData(bgImage.url)
  33. // bgImage.setImageData(imageData)
  34. // }
  35. return;
  36. }
  37. floorplanService.setCurrentId(floorsData.currentId);
  38. for (let i = 0; i < floorsData.floors.length; ++i) {
  39. let floor = floorsData.floors[i];
  40. floorplanService.initFloor(i);
  41. for (let key in floor.points) {
  42. wallService.createPoint(
  43. floor.points[key].x,
  44. floor.points[key].y,
  45. floor.points[key].vectorId,
  46. i
  47. );
  48. }
  49. for (let key in floor.walls) {
  50. let wall = wallService.createWall(
  51. floor.walls[key].start,
  52. floor.walls[key].end,
  53. floor.walls[key].vectorId,
  54. i
  55. );
  56. floor.walls[key].color && wall.setColor(floor.walls[key].color);
  57. }
  58. for (let key in floor.tags) {
  59. let tag = tagService.createTag(
  60. floor.tags[key].center,
  61. floor.tags[key].vectorId,
  62. i
  63. );
  64. tag.setValue(floor.tags[key].value);
  65. floor.tags[key].color && tag.setColor(floor.tags[key].color);
  66. floor.tags[key].fontSize && tag.setFontSize(floor.tags[key].fontSize);
  67. }
  68. for (let key in floor.customImages) {
  69. let customImage = await customImageService.createCustomImage(
  70. floor.customImages[key].url,
  71. floor.customImages[key].center,
  72. floor.customImages[key].vectorId
  73. );
  74. customImage.setAngle(floor.customImages[key].angle);
  75. customImage.setScale(floor.customImages[key].scale);
  76. customImage.setRatio(floor.customImages[key].ratio);
  77. }
  78. for (let key in floor.tables) {
  79. let table = tableService.createTable(
  80. floor.tables[key].center,
  81. floor.tables[key].vectorId,
  82. i
  83. );
  84. table.rowLen = floor.tables[key].rowLen;
  85. table.colLen = floor.tables[key].colLen;
  86. table.points = floor.tables[key].points;
  87. table.cells = floor.tables[key].cells;
  88. }
  89. for (let key in floor.cells) {
  90. let cell = tableService.createCell(
  91. floor.cells[key].parent,
  92. floor.cells[key].vectorId,
  93. i
  94. );
  95. cell.width = floor.cells[key].width;
  96. cell.height = floor.cells[key].height;
  97. cell.value = floor.cells[key].value;
  98. cell.colIndex = floor.cells[key].colIndex;
  99. cell.rowIndex = floor.cells[key].rowIndex;
  100. }
  101. for (let key in floor.rectangles) {
  102. let rectangle = rectangleService.createRectangle(
  103. floor.rectangles[key].points[0],
  104. floor.rectangles[key].points[2],
  105. floor.rectangles[key].vectorId,
  106. i
  107. );
  108. floor.rectangles[key].color &&
  109. rectangle.setColor(floor.rectangles[key].color);
  110. }
  111. for (let key in floor.circles) {
  112. let circle = circleService.createCircle2(
  113. floor.circles[key].center,
  114. floor.circles[key].radius,
  115. floor.circles[key].vectorId,
  116. i
  117. );
  118. floor.circles[key].color && circle.setColor(floor.circles[key].color);
  119. }
  120. for (let key in floor.arrows) {
  121. let arrow = arrowService.createArrow(
  122. floor.arrows[key].startPoint,
  123. floor.arrows[key].endPoint,
  124. floor.arrows[key].vectorId,
  125. i
  126. );
  127. floor.arrows[key].color && arrow.setColor(floor.arrows[key].color);
  128. }
  129. for (let key in floor.icons) {
  130. iconService.createIcon2(
  131. floor.icons[key].center,
  132. floor.icons[key].radius,
  133. floor.icons[key].value,
  134. floor.icons[key].vectorId,
  135. i
  136. );
  137. }
  138. for (let key in floor.signs) {
  139. let sign = signService.createSign(
  140. floor.signs[key].center,
  141. floor.signs[key].geoType,
  142. floor.signs[key].vectorId,
  143. i
  144. );
  145. sign.angle = floor.signs[key].angle;
  146. floor.signs[key].scale && sign.setScale(floor.signs[key].scale);
  147. }
  148. const title = floorplanService.createTitle(
  149. floor.title.value,
  150. floor.title.vectorId,
  151. i,
  152. floor.title.noShow
  153. );
  154. // debugger
  155. floorplanService.addTitle(title);
  156. const compass = floorplanService.createCompass(
  157. floor.compass.angle,
  158. floor.compass.vectorId,
  159. i,
  160. floor.compass.noShow
  161. );
  162. // debugger
  163. floorplanService.addCompass(compass);
  164. if (floor.bgImage && floor.bgImage.url) {
  165. const bgImage = await bgImageService.createBgImage(
  166. floor.bgImage.url,
  167. floor.bgImage.center
  168. );
  169. if (floor.bgImage.hasOwnProperty("scale")) {
  170. bgImage.setScale(floor.bgImage.scale);
  171. }
  172. }
  173. if (floor.noBoardFrame) {
  174. floorplanService.setBoardFrame(floor.noBoardFrame);
  175. }
  176. }
  177. }
  178. }