# new MapGISFeatureGridCollection(options)
网格要素容器
参数:
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
options |
Object | 构造参数 |
|
queryFeaturesByGrid |
function | 查询网格内要素,返回一个Promise要素数组。 |
|
debugGrid |
Boolean | false | 开启debug网格 |
updateInterval |
Number | 20 | 要素更新间隔。设置值过大时也会影响性能 |
maxTileCacheCount |
Number | 300 | 最大的瓦片缓存数量 |
minimumLevel |
Number | 0 | 支持请求的最小级别,小于这个级别不会发送查询要素的请求 |
maximumLevel |
Number | Number.MAX_VALUE | 支持请求的最大级别,大于这个级别不会发送查询要素的请求 |
extent |
Extent | 请求数据的范围,不在这个范围不会发送查询请求 |
|
idField |
String | 用于唯一标识要素的属性字段。多个网格会请求同样一个面要素,为了避免重复添加,增加要素属性字段用于标识唯一要素 |
|
translucency |
String | 1 | 设置图层透明度,只支持部分符号样式。 |
show |
Boolean | true | 是否显示网格要素 |
renderer |
Renderer | null | null | 渲染器 |
lodStrategy |
String | 'add' | lod策略,'add'模式会一直添加要素,'replace'模式则是在瓦片更新时销毁上一级瓦片要素,添加下一级瓦片的要素。 |
tilingScheme |
CustomTilingScheme | Cesium.GeographicTilingScheme | Cesium.WebMercatorTilingScheme | new Cesium.GeographicTilingScheme() | 瓦片网格划分方式,默认使用cesium的四叉树网格。 |
timeExtent |
TimeExtent | null | 时间范围,仅显示在此时间范围内的要素,需要配合TimeInfo使用。 |
timeInfo |
TimeInfo | null | 时间维度信息的描述 |
示例
const igsFeatureLayer = new IGSFeatureLayer({
url: 'http://webclient.smaryun.com:8089/igs/rest/services/Map/%E6%B9%96%E5%8C%97%E7%9C%814326/FeatureServer'
})
featureGridCollection = viewer.scene.primitives.add(new MapGISFeatureGridCollection({
debugGrid: true,
maxTileCacheCount: 300,
minimumLevel: 6,
idField: "FID",
queryFeaturesByGrid: (grid) => {
return igsFeatureLayer.queryFeatures({
sublayerId: '0',
spatialRel: 'Intersects',
geometry: grid.extent,
resultRecordCount: 400
}).then((res) => {
res.features.forEach((feature) => {
feature.symbol = new PolygonSymbol3D({
symbolLayers: [
// 创建一个三维拉伸区符号突出
new ExtrudeSymbol3DLayer({
// 覆盖物颜色
material: new ColorMaterial({
color: new Color(255, 0, 0, 0.3)
}),
// 拉伸高度
size: Math.random() * 1000 + 200
})
]
})
})
return Promise.resolve(res.features)
})
}
}))