太优秀了!ThingJS 3D开发轻松实现建筑下的人员定位

2,019 阅读3分钟

在室内地图领域,LBS服务产品的基础能力发展的如火如荼,尤其是支持多终端的渲染,满足人们不行与车行路线规划、导航的需求。而到了物联网行业呢?作业人员更多是被置于危险的工作建筑区域内,面临着设备众多、布线复杂、用电危险等不安全因素,人员定位显得更加急迫,ThingJS具备3D引擎底层技术,通过对接实时数据,把场景、人物都一一对应起来,更加灵活地立体展现人员的动态和行动轨迹。

通过ThingJS可以将人员的定位信息在3D场景中对应起来,进行描点,画线,并创建相关人物的模型,根据实时数据驱动人物行走,并且支持楼层内外的相结合,使我们能更加直观的了解人物所处位置及行走路线。

人物户外行走

方案:根据最新请求的位置数据与上一次请求所得的位置数据,可计算两个位置之间的距离,再根据两次请求数据的时差,即可得到人物行走的速度,请点击参考ThingJS API (请参考物体下延路径移动demo,www.thingjs.com/guide/?m=ap…

人物即将进入建筑和进入建筑内

方案:当最新的人员位置数据在建筑内部时,隐藏建筑外立面(building. showFacades),显示人物即将进入该建筑的楼层(building.showFloors,详见http://www.thingjs.com/guide/?m=api 下 Building),并使用api驱动人物行走。

设置物体观察朝向的代码示例如下:

LookAT(target, params)

Parameters:

Properties:

Iherited From: • THING.BaseObject#add Overrides: • THING.BaseObject#add

Example

//让物体面向[0,1,0],该坐标是在世界坐标下位置 obj.lookAt([0,1,0]) //让物体一直面向摄影机 obj.lookAt(app.camera) //让物体一直面向一个物体 obj.lookAt(obj2) //让物体一直面向一个物体,同时物体沿自身Y轴向再旋转90度 obj.lookAt(obj2,[0,90,0]) //取消lookAt功能 obj.lookAt(null)

代码示例结束。

人物上楼的效果

方案:当最新请求的人员位置数据在不同楼层时(比如:从一层到二层),首先显示该楼层并将所有楼层透明(透明便于观察,方法:floor.style.opacity = 0.5 ,详见http://www.thingjs.com/guide/?m=api)。并使用api驱动人物行走。

添加子物体的代码示例如下:

add(params, index?)

Parameters:

index? Number 插入下标,默认插入到最后位置 Inherited From: • THING.BaseObject#add Overrides: • THING.BaseObject#add

Example

// 将物体 box 作为孩子直接添加到 car 上 car.add(box); // 添加子物体 box ,并设置其与父物体的相对位置 car.add({ object: box, // 作为孩子的对象 localPosition: [0, 2, 0] // 相对于父物体的坐标 }); // 以某个“子节点”作为参考基准点,添加子物体 car.add({ object: box, basePoint: "chazi", // 作为“基准”的“子节点”名称 });

代码示例结束。

ThingJS是一款优秀的基于WebGL的3D开发框架,支持授权您的项目开发和部署,点击进入官网了解http://www.thingjs.com/guide/