分享
查看: 1377|回复: 0

[分享] 利用电子标注判断物联网设备的位置

[复制链接]

利用电子标注判断物联网设备的位置

发表于 2020-12-24 16:48:20 来自 分享 阅读模式 倒序浏览
zzv_icon1377 zzr_icon0 查看全部

人的一生当中有80%的时间是在室内度过的,个人用户、服务机器人、新型物联网设备等大量的定位需求也发生在室内,然而室内场景受到建筑物的遮挡,室内场景中导航定位比较困难。

利用电子标注判断物联网设备的位置

如果将线下地址信息标注到互联网电子地图、手机电子地图或导航地图中,用户在可视化界面就可以根据顶牌信息判断物体在区域内位置,实现物联网的全景安全管控方式。

利用电子标注判断物联网设备的位置

3D可视化的前端技术可以实现多种多样的标注,在场景内添加不同的标注样式,例如纯文本标注、图片加文字标注、普通图片标注、定位标注、气泡标注,ThingJS把标注类型都封装成js类库,代码示例如下:
  1. // 添加纯文本标注
  2. new THING.widget.Button('纯文本标注', function () {
  3. removeMark();
  4. if ($('.textMarker').length > 0) {
  5. $('.textMarker').css('display', 'block')
  6. } else {
  7. createElement(null, "textMarker");
  8. }
  9. })
  10. // 更新文本标注内容
  11. new THING.widget.Button('更新文本标注内容', function () {
  12. // 根据获取已创建的文本
  13. if ($('.textMarker').length > 0) {
  14. $('.textMarker .text').html('ThingJS文字标注');
  15. }
  16. })
  17. // 添加图片加文字标注
  18. new THING.widget.Button('图片加文字标注', function () {
  19. removeMark();
  20. if ($('.textAndPictureMarker').length > 0) {
  21. $('.textAndPictureMarker').css('display', 'block')
  22. } else {
  23. createElement(null, "textAndPictureMarker");
  24. }
  25. })
  26. // 添加普通图片标注
  27. new THING.widget.Button('普通图片标注', function () {
  28. removeMark();
  29. // 创建图片标注
  30. if ($('.pictureMarker').length > 0) {
  31. $('.pictureMarker').css('display', 'block')
  32. } else {
  33. createElement(null, "pictureMarker");
  34. }
  35. })
  36. // 添加带角度的图片标注
  37. new THING.widget.Button('带角度的图片标注', function () {
  38. removeMark();
  39. // 创建图片标注
  40. if ($('.pictureMarker').length > 0) {
  41. $('.pictureMarker').css('display', 'block');
  42. } else {
  43. createElement(null, "pictureMarker");
  44. }
  45. $('.pictureMarker').addClass('rotateAnimation');
  46. })
  47. // 添加定位标注
  48. new THING.widget.Button('定位标注', function () {
  49. removeMark();
  50. var box = app.create({
  51. type: 'Box',
  52. position: [85, 2, 60],
  53. style: {
  54. opacity: 0,
  55. }
  56. });
  57. var marker = app.create({
  58. type: "Marker",
  59. name: "pictureMarker",
  60. parent: box,
  61. url: "/guide/examples/images/navigation/navigation.png",
  62. localPosition: [0, 0.5, 0],
  63. size: 1.5,
  64. useSpriteMaterial: false
  65. })
  66. marker.rotateX(90);
  67. })
  68. // 更新定位标注
  69. new THING.widget.Button('更新定位标注', function () {
  70. var box = app.query('.Box')[0];
  71. if (box) {
  72. box.moveTo({
  73. position: [70, 2, 51], // 移动到世界位置
  74. time: 2 * 1000,
  75. orientToPath: true,
  76. lerpType: null, // 插值类型 默认为线性插值
  77. });
  78. }
  79. })
  80. // 动态添加图片标注
  81. new THING.widget.Button('动态添加图片标注', function () {
  82. removeMark();
  83. // 鼠标单击事件,动态添加图片标注
  84. app.on('click', function (ev) {
  85. if (ev.picked) {
  86. app.create({
  87. type: 'Marker',
  88. name: "marker",
  89. url: "/guide/examples/images/navigation/pointer.png",
  90. size: 1.1,
  91. position: ev.pickedPosition,
  92. keepSize: true,
  93. pivot: [0.5, 1],
  94. style: {
  95. alwaysOnTop: true
  96. }
  97. });
  98. }
  99. }, '动态添加图片标注');
  100. })
  101. var marker01 = null;
  102. var marker02 = null;
  103. var time = 0;
  104. // 气泡标注
  105. new THING.widget.Button('气泡标注', function () {
  106. removeMark();
  107. // 创建普通图片标注
  108. if (marker01 == null) {
  109. marker01 = app.create({
  110. type: "Marker",
  111. name: "marker01",
  112. url: "/guide/examples/images/navigation/pointer.png",
  113. position: [80, 3, 70],
  114. size: 1.1
  115. })
  116. }
复制代码

了解更多demo请点击注册>>


avatar
游客~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

130700ppkpl8x3t7tt1b1t