Load.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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. if(!floorsData||!floorsData.floors){
  20. floorplanService.initFloor(0)
  21. //添加标题
  22. const title = floorplanService.createTitle()
  23. floorplanService.addTitle(title)
  24. //添加指南针
  25. const compass = floorplanService.createCompass()
  26. floorplanService.addCompass(compass)
  27. // //添加背景图片
  28. // const bgImage = floorplanService.createBgImage()
  29. // floorplanService.addBgImage(bgImage)
  30. // if(bgImage.url){
  31. // const imageData = await floorplanService.loadImageData(bgImage.url)
  32. // bgImage.setImageData(imageData)
  33. // }
  34. return;
  35. }
  36. floorplanService.setCurrentId(floorsData.currentId)
  37. for (let i = 0; i < floorsData.floors.length; ++i) {
  38. let floor = floorsData.floors[i]
  39. floorplanService.initFloor(i)
  40. for (let key in floor.points) {
  41. wallService.createPoint(floor.points[key].x, floor.points[key].y, floor.points[key].vectorId, i)
  42. }
  43. for (let key in floor.walls) {
  44. let wall = wallService.createWall(floor.walls[key].start, floor.walls[key].end, floor.walls[key].vectorId, i)
  45. floor.walls[key].color && wall.setColor(floor.walls[key].color)
  46. }
  47. for (let key in floor.tags) {
  48. let tag = tagService.createTag(floor.tags[key].center, floor.tags[key].vectorId, i)
  49. tag.setValue(floor.tags[key].value)
  50. floor.tags[key].color && tag.setColor(floor.tags[key].color)
  51. floor.tags[key].fontSize && tag.setFontSize(floor.tags[key].fontSize)
  52. }
  53. for (let key in floor.customImages) {
  54. let customImage = await customImageService.createCustomImage(floor.customImages[key].url,floor.customImages[key].center, floor.customImages[key].vectorId)
  55. customImage.setAngle(floor.customImages[key].angle)
  56. customImage.setScale(floor.customImages[key].scale)
  57. customImage.setRatio(floor.customImages[key].ratio)
  58. }
  59. for (let key in floor.tables) {
  60. let table = tableService.createTable(floor.tables[key].center, floor.tables[key].vectorId, i)
  61. table.rowLen = floor.tables[key].rowLen
  62. table.colLen = floor.tables[key].colLen
  63. table.points = floor.tables[key].points
  64. table.cells = floor.tables[key].cells
  65. }
  66. for (let key in floor.cells) {
  67. let cell = tableService.createCell(floor.cells[key].parent,floor.cells[key].vectorId, i)
  68. cell.width = floor.cells[key].width
  69. cell.height = floor.cells[key].height
  70. cell.value = floor.cells[key].value
  71. cell.colIndex = floor.cells[key].colIndex
  72. cell.rowIndex = floor.cells[key].rowIndex
  73. }
  74. for (let key in floor.rectangles) {
  75. let rectangle = rectangleService.createRectangle(floor.rectangles[key].points[0], floor.rectangles[key].points[2], floor.rectangles[key].vectorId,i)
  76. floor.rectangles[key].color && rectangle.setColor(floor.rectangles[key].color)
  77. }
  78. for (let key in floor.circles) {
  79. let circle = circleService.createCircle2(floor.circles[key].center, floor.circles[key].radius, floor.circles[key].vectorId,i)
  80. floor.circles[key].color && circle.setColor(floor.circles[key].color)
  81. }
  82. for (let key in floor.arrows) {
  83. let arrow = arrowService.createArrow(floor.arrows[key].startPoint,floor.arrows[key].endPoint,floor.arrows[key].vectorId,i)
  84. floor.arrows[key].color && arrow.setColor(floor.arrows[key].color)
  85. }
  86. for (let key in floor.icons) {
  87. iconService.createIcon2(floor.icons[key].center,floor.icons[key].radius,floor.icons[key].value,floor.icons[key].vectorId,i)
  88. }
  89. for (let key in floor.signs) {
  90. let sign = signService.createSign(floor.signs[key].center, floor.signs[key].geoType, floor.signs[key].vectorId,i)
  91. sign.angle = floor.signs[key].angle
  92. floor.signs[key].scale && sign.setScale(floor.signs[key].scale)
  93. }
  94. const title = floorplanService.createTitle(floor.title.value, floor.title.vectorId, i)
  95. floorplanService.addTitle(title)
  96. const compass = floorplanService.createCompass(floor.compass.angle, floor.compass.vectorId, i)
  97. floorplanService.addCompass(compass)
  98. if (floor.bgImage && floor.bgImage.url) {
  99. const bgImage = await bgImageService.createBgImage(floor.bgImage.url)
  100. if(floor.bgImage.hasOwnProperty('scale'))
  101. {
  102. bgImage.setScale(floor.bgImage.scale)
  103. }
  104. }
  105. }
  106. }
  107. }