1、打开场景,按需对图层进行显隐(适合单个服务内图层数量较少情况)
对应前端代码:
viewer.scene.open(URL) //打开场景
layer.visible = true; //对应图层设置可见
layer.visible = false; //对应图层设置不可见
2、根据需要单个加载图层(适合单个服务内图层数量较多情况)
对应前端代码:
var sceneName = url.substring(url.indexOf("3D-") + 3, url.indexOf("/rest"));
var layerspath = url + "/scenes/" + sceneName + "/layers.json";
commit.open("GET", encodeURI(layerspath), false, "", "");
commit.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
commit.send(null);
var layersInfo = json_parse(commit.responseText, null);
viewer.scene.addS3MTilesLayerByScp(url + "/datas/" + layerName + "/config", { name: layerName }); //加载单个图层
viewer.scene.layers.remove(layerName); //移除图层
3、后台请求数据,前端渲染图形(适合二维数据且查询较快的情况)
对应前端代码:
queryGeometry(tableName, where, database).then((res) => { //查询后台数据
if (res.resultStat === "SUCCESS") {
let resultFeatures = res.data;
ellipseEntity = viewer.entities.add({ //添加几何实体
position : resultFeatures ,
ellipse : {
semiMinorAxis : 20.0,
semiMajorAxis : 40.0,
height : 0,
extrudedHeight : 50.0,
material : color,
granularity : Cesium.Math.RADIANS_PER_DEGREE,
rotation : 0,
fill : true,
outline : false,
outlineColor : Cesium.Color.BLACK,
outlineWidth : 4
}
});
}
});
viewer.entities.remove(ellipseEntity); //去除几何实体