app.on('load', function () {
var obj = app.query(value),
})
这个方法我们查询到的是一个 Selector集合,即数字孪生可视化园区中带有该属性的所有物体。
应用示例:按属性查询物体
加载场景后,添加按正则name查询按钮,数字孪生可视化园区内对应属性的模型可以被查询到。
// 加载ThingJS示例园区
var app = new THING.App({
url: 'https://www.thingjs.com/static/models/storehouse'
});
// 通过load事件回调函数,添加界面按钮并绑定按钮事件
app.on('load', function () {
new THING.widget.Button('按name正则查询', queryByRegExp);
});
// 根据正则表达式匹配 name 中包含'car'的物体,点击按钮后更改物体颜色
function queryByRegExp() {
var cars = app.query(/car/);
// 上行代码等同于
// var reg = new RegExp('car');
// var cars=app.query(reg);
cars.forEach(function (obj) {
obj.style.color = 'red';
})
}
// 加载地图
var app = new THING.App();
// 引用地图组件脚本
THING.Utils.dynamicLoad(['https://www.thingjs.com/uearth/history/uearth.min.v1.7.8.12.js'], function () {
app.create({
type: 'Map',
// 地图场景名:map_6
url: ‘myMapDirectory’,
complete: function (event) {
console.log(app.query(value));
}
});
});
二、其他查询方法:
父子属性
下面的代码中,通过数字孪生可视化场景的“父子树”来查询对象,并将查询结果显示在日志窗口中。
// 加载ThingJS示例园区
var app = new THING.App({
url: 'https://www.thingjs.com/static/models/storehouse'
});
// 通过load事件加载园区
app.on('load', function (ev) {
var campus = ev.campus; //获取园区对象
// 通过场景的父子树访问对象
var children = campus.children;
for (var i = 0; i < children.length; i++) {
var child = children[i];
var id = child.id;
var name = child.name;
var type = child.type;
console.log('id: ' + id + ' name: ' + name + ' type: ' + type); //日志窗口中返回查询信息
};
})