为什么选择 ThingJS
在目前的市场上,3D 应用的开发,有很多工具可以选择,如:Unity、threejs、BIM、GIS,但他们要么过于侧重某些领域,如游戏、建筑施工、地理信息等;要么过于底层,学习成本高,距最终应用有很大的距离。所以要想开发一个完整的物联网可视化应用,往往都需要付出很多的努力,甚至是难以完成的任务。所以,我们需要一个更接近行业应用、更具开发效率的工具,来解决物联网可视化应用的问题 —— 功能要更对口,开发要更高效。
功能的针对性和粒度
与上述的其他开发工具不同,ThingJS 是针对园区级,多建筑群应用进行接口设计的,提供了从 地球 到 城市、园区、建筑、楼层、房间、设备的多级展示与控制,论是仓库、学校、医院、工厂、办公楼等都能满足;而且这些层次的对象在 ThingJS 的场景加载完成后,是以 JS 对象的方式直接暴露给用户使用,简单方便;
在功能接口提供的粒度上,ThingJS 和其他开发工具相比,站在了更高的封装层面, 用尽可能简洁的接口,直接提供了场景的加载与展示、物联网设备的创建与特效;还提供了信息点、线路、管线、区域、热图、粒子、动画等丰富功能;提供了摄影机控制、第一人称行走、寻路导航和视点线路工具;可扩展的界面、头顶信息牌、内嵌视频监控等丰富的信息展示方式。这些接口大部分已经在在线例子中可以找到,可以边改参数边看到效果;
学习、开发、部署效率
如果在没有什么类似项目经验积累的情况下,用 Unity、threejs 等工具,从构建一个场景展示开始、到创建物联网设备、再到推送数据、显示数据信息等等,这个过程需要花费很大的学习和构建成本。比如,首先面临要考虑的就是场景如何来、设备的模型如何来、之后还要考虑如何控制他们、如何解决性能问题,这都需要较高的 3D 专业知识,需要深入很多细节才行。
而 ThingJS API 已经对这些问题进行了高度的封装,官网上所提供的充足例子,就是在物联网可视化中最常见的方案,这将让用户更加聚焦他关心的业务逻辑,而非专业知识 —— 这也是很多工具库的价值所在;
使用 ThingJS 在线开发提供的“代码块”,甚至不需要学习 API,就可以让用户一边贴出自己想要的代码,一边立刻执行看到结果。在发布时,也无需部署,可以直接通过二维码扫描在线转发即可。
同时,ThingJS 的搭建工具、模型库等解决了场景和模型从哪里来的问题,同样也让用户以尽可能地的门槛得到所需的资源。
以上这些都将帮助用户以最快的速度 学习、开发与部署。
ThingJS 不适合做什么
ThingJS 所定位的物联网可视化应用,侧重宏观场景表现,并不针对局部细节的效果,而且由于 WebGL 技术的性能局限,在性能上不能和 Unity 等原生程序相比,性能和效果的侧重也更偏向前者,就像 电纸书 和 手机 有着不同的定位;所以,ThingJS 不适合做场景细节要求高的应用,如:家居装修设计、单体模型展示、游戏和电影级的画质效果。
学习 ThingJS 的基础
ThingJS 对开发者的要求是:熟练使用 Javascript 语言,有使用过其他框架的经验会更有帮助。所以对于初级的前端工程师,就可使用 ThingJS 完成 3D 可视化应用开发,ThingJS 的开发与各类网页前端现有 HTML/JS 资源完全兼容。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.