首页 / 浏览问题 / WebGIS / 问题详情
控高分析超高部分模型如何高亮
18EXP 2021年01月20日

做控高分析功能,想要官网demo的超高部分高亮效果,请问demo中这一段代码中的ids如何获取?

setObjsColor(ids,color)

下面方法中的这些数字id怎么来的?我可以通过什么接口查询获取到吗?

 origina2.setObjsColor([21, 17, 160, 62, 50, 55, 203, 57, 69, 197, 481, 29, 198, 202, 47], Cesium.Color.DARKORANGE.withAlpha(0.5));

限高分析demo地址:http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#limitHeightAnalysis

上述代码再demo147行

1个回答

在同一三维切片缓存中,每个对象都对应一个唯一标识id,这个ids就是这些id的集合(当然,是你需要变色的id)。id的获取有多种方式,比如点选时就可以通过layer.getSelection()获取到选择对象的id。

如果是要对指定的对象进行变色(比如对某一相同属性值的对象),那么可以通过查询数据服务获取到这些id。查询数据服务的demo请参考sql查询示例。
1,509EXP 2021年01月21日
谢谢您的回答,但是好像不能满足需求。继续请教一下。。。我的需求是:绘制生成一个长方体,模型高于此长方体的部分高亮。这样该如何获取到那些ids?这个模型可能是一栋建筑也可能是多个建筑,ids通过点选获取不合理。也不是指定的对象,这个是由用户随意框选的

您好,您的这个需求我想可以用分层设色来实现,如您所说您可以用空间查询来选中用户所框选的建筑集合(参考空间查询demo),之后获取用户框选的长方体高度,再将这个长方体高度设为分层设色(可以参考淹没分析demo)的最小高度,至于最大高度您可以设置的相对大一点也不影响,当然也可以设置为所框选模型的最大高度。

空间查询demo: http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#getFeatureByGeometry

淹没分析demo: http://support.supermap.com.cn:8090/webgl/examples/webgl/editor.html#flood

...