首页 / 浏览问题 / 三维GIS / 问题详情
webgl地下管线示例倾斜裁剪后怎么复原?
wdz
31EXP 2022年02月09日
webgl地下管线示例倾斜裁剪后怎么复原?另外,管线管点怎么实现点击查询属性?

1个回答

您好,地下管线示例中,裁剪使用的是图层的开挖S3Mtileslayer.addExcavationRegion();可以使用两种方式进行开挖面的移除,移除指定开挖面接口为http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=S3M#removeExcavationRegion;移除所有开挖面:http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=S3M#removeAllExcavationRegion

管线点击查询属性有两种方式,点击后通过数据服务进行查询,可参考示例:http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#S3MTiles_BIM

点击后直接查询管线缓存属性,则使用http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=S3M#getAttributesById根据点击获取到的id对象进行查询

1,225EXP 2022年02月09日
点击后直接查询管线缓存属性,怎么获取点击的id呢
监听点击事件可获取到对象ID
我有很多个管点管线图层,现在只能监听一个图层viewer.scene.layers.find('污水@管线').getSelection().toString();而且我桌面生成的s3m缓存图层 输出getAttributesById(id)里面没看到对象字段

您需要将layer的indexedDBSetting 设置为保存属性,具体可参考 http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=S3M#indexedDBSetting

viewer.scene.layers.find('污水@管线').indexedDBSetting.isAttributesSave = true,这样设置后输出还是没有属性信息,但是桌面属性表是有属性字段的
console.log(viewer.scene.layers.find('污水@管线').getAttributesById(Number(SMID)))
layer.getAttributesById(ids[i]).then(function(data) {

                                        console.log(data);

                                    });
...