# new ModelFilterTool(layeropt, optionsopt)
模型空间过滤工具
参数:
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
layer |
Cesium.MapGISM3DSet | {} | MapGISM3DSet对象,详见Cesium.MapGISM3DSet |
options |
Object | {} | 额外初始化参数 |
enableFrameFunction |
Boolean | true | 启用帧函数,即每一帧执行过滤操作,针对lod的模型实时过滤 |
enableCartesian |
Boolean | false | 是否使用笛卡尔坐标,[cartesian3,cartesian3,cartesian3,...] |
请参考以下示例:
1、外包盒过滤2、外包盒过滤,带高度范围
3、模型中心点过滤
4、模型中心点过滤,带高度范围
5、取消过滤
支持如下方法:
[1、给定范围,如果模型的BoundingVolume和给定范围相交,则显示模型,否则不显示][2、给定范围,如果模型的中心点在给定范围内,则显示模型,否则不显示]
[3、撤销过滤]
[4、销毁工具]
示例
// 参考示例:
http://webclient.smaryun.com/#/modules/cesium/analyse/modelAnalyse/model-filter
// ES5引入方式
const { ModelFilterTool } = zondy.cesium
// ES6引入方式
import { ModelFilterTool } from "@mapgis/webclient-cesium-plugin"
// 1 初始化模型空间过滤工具
const modelFilterTool = new zondy.cesium.ModelFilterTool(
// 获取到的MapGISM3DSet对象
layer,
// 额外初始化参数
{
//支持输入范围为笛卡尔坐标
enableCartesian: true
})
// 2 外包盒过滤
modelFilterTool.filterWithBoundingVolume(
// 过滤范围,笛卡尔3坐标数组
[]
)
// 参考示例:
http://webclient.smaryun.com/#/modules/cesium/analyse/modelAnalyse/model-filter
// ES5引入方式
const { ModelFilterTool } = zondy.cesium
// ES6引入方式
import { ModelFilterTool } from "@mapgis/webclient-cesium-plugin"
// 1 初始化模型空间过滤工具
const modelFilterTool = new zondy.cesium.ModelFilterTool(
// 获取到的MapGISM3DSet对象
layer,
// 额外初始化参数
{
//支持输入范围为笛卡尔坐标
enableCartesian: true
})
// 2 外包盒过滤,带高度范围
modelFilterTool.filterWithBoundingVolume(
// 过滤范围,笛卡尔3坐标数组
[],
// 外包盒最小高度
10,
// 外包盒最大高度
200
)
// 参考示例:
http://webclient.smaryun.com/#/modules/cesium/analyse/modelAnalyse/model-filter
// ES5引入方式
const { ModelFilterTool } = zondy.cesium
// ES6引入方式
import { ModelFilterTool } from "@mapgis/webclient-cesium-plugin"
// 1 初始化模型空间过滤工具
const modelFilterTool = new zondy.cesium.ModelFilterTool(
// 获取到的MapGISM3DSet对象
layer,
// 额外初始化参数
{
//支持输入范围为笛卡尔坐标
enableCartesian: true
})
// 2 模型中心点过滤
modelFilterTool.filterWithCenter(
// 过滤范围,笛卡尔3坐标数组
[]
)
// 参考示例:
http://webclient.smaryun.com/#/modules/cesium/analyse/modelAnalyse/model-filter
// ES5引入方式
const { ModelFilterTool } = zondy.cesium
// ES6引入方式
import { ModelFilterTool } from "@mapgis/webclient-cesium-plugin"
// 1 初始化模型空间过滤工具
const modelFilterTool = new zondy.cesium.ModelFilterTool(
// 获取到的MapGISM3DSet对象
layer,
// 额外初始化参数
{
//支持输入范围为笛卡尔坐标
enableCartesian: true
})
// 2 模型中心点过滤,带高度范围
modelFilterTool.filterWithCenter(
// 过滤范围,笛卡尔3坐标数组
[],
// 最小高度范围
10,
// 最大高度范围
200
)
modelFilterTool.removeFilter()
方法
# filterWithBoundingVolume(positionsopt, minHeightopt, maxHeightopt)
参数:
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
positions |
Array.<Cesium.Cartesian3> | [] | 给定过滤范围,默认经纬度高程坐标点数组,[Cesium.Cartesian3, Cesium.Cartesian3, Cesium.Cartesian3, ...],详见Cesium.Cartesian3 |
minHeight |
Number | 0 | 过滤最小高度,如果最大或最小高度未传,则不进行高度过滤 |
maxHeight |
Number | 0 | 过滤最大高度,如果最大或最小高度未传,则不进行高度过滤 |
# filterWithCenter(positionsopt, minHeightopt, maxHeightopt)
参数:
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
positions |
Array.<Cesium.Cartesian3> | [] | 给定过滤范围,默认经纬度高程坐标点数组,[Cesium.Cartographic, Cesium.Cartographic, Cesium.Cartographic, ...] |
minHeight |
Number | 0 | 过滤最小高度,如果最大或最小高度未传,则不进行高度过滤 |
maxHeight |
Number | 0 | 过滤最大高度,如果最大或最小高度未传,则不进行高度过滤 |