技术参照:

cesium在vue中进行架构设计与实现_cesium怎么修改entity的层级-CSDN博客

iClientOL实现前端gis开发架构_前端iclientol-CSDN博客

天地图电子地图矢量地图底图结合图像学实现风格底图地图-CSDN博客

iclient for ol实现风险区识别_iclient-ol polygon-CSDN博客

java实现反距离权重插值算法生成geojson矢量数据_contour.tracingcontourlines-CSDN博客

java+iClientOpenlayers实现城市内涝积涝模拟内涝模拟演进-CSDN博客

        基于空天地一体化监测、AI算法、数字孪生等现代信息技术和水文学原理,实现城市内涝全要素、全过程、精细化管理。

业务挑战

方案介绍

        智慧水利洪水场景平台基于城市降水、城市产汇流、节点水量交换、地下管网行洪、街道洪水演进、外源洪水和下游河道排水等水文水力分析计算模块,分析超标准暴雨下城市内涝淹没过程,用以评估城市排水能力,识别超标准暴雨下的内涝风险点,实现城市内涝“预报、预警、预演、预案”功能。以数字孪生技术赋能城市洪涝减灾防治,为有效解决城市水灾害,应对防洪排涝提供有效的技术解决方案。

方案组成

        提供雨量水位实时监测、低洼点监测、重点设施监测、视频实时监控、智能淹没仿真模拟、灾情推演等功能,利用数据分析研判提前发现内涝隐患区域并进行实时预警,为管理者提供有标准、有依据、有推算、有经验的决策辅助。

业务场景

防汛“一张图”务场景
内涝风险识别
内涝监测预警
内涝模型管理

内涝风险模拟仿真

预警及应急管理

方案优势

设施“物联化”

        通过一体化的物联感知网络监测设备,保证了雨量监测、水位监测、低洼点监测、重点设施监测等信息获取的丰富性、准确性和实时性。

时空信息“互联化”

        通过构建时空大数据共享平台,实现了城市内涝监测预警信息的互通互联,构建坚实的防洪排涝数字时空底座。

排水防涝“模型化”

        基于城市内涝模型平台,进行智能淹没仿真模拟、灾情推演,通过实时数据分析研判及时发现内涝隐患区域并发出实时预警。

管理服务“协同化”

        利用数字孪生可视化平台、网络通信、移动设备等,结合“一张图”及综合管理调度系统,为城市洪涝监测预警构建完善的管理服务体系。

典型案例

智慧水利洪水场景平台

        基于城市降水、城市产汇流、节点水量交换、地下管网行洪、街道洪水演进、外源洪水和下游河道排水等水文水力分析计算模块,分析超标准暴雨下城市内涝淹没过程,用以评估城市排水能力,识别超标准暴雨下的内涝风险点,实现城市内涝“预报、预警、预演、预案”功能。

部分关键代码实现:

export function CommonDrawByGeojson(zjnCesium,layersInfo,LayersRenderSet,LayersRenderLabelSet,layerId,calleend){
    var options = {

        camera : zjnCesium.viewer.scene.camera,

        canvas : zjnCesium.viewer.scene.canvas,

        markerSize: 96,

        clampToGround: layersInfo[layerId].options.clampToGround //开启贴地

    };
    //Seed the random number generator for repeatable results.
    CMath.setRandomNumberSeed(0);
    var promise=GeoJsonDataSource.load(layersInfo[layerId].url, options);
    promise.then(function(dataSource) {
        zjnCesium.viewer.dataSources.add(dataSource);
        var entities = dataSource.entities.values;
        for (var i = 0; i < entities.length; i++) {
            var entity = entities[i];
            entity.show = layersInfo[layerId].options.isShow
            var symbol = getLyaerRenderSymbol(LayersRenderSet,layerId,entity.properties);
            if(symbol != null){
                if(layersInfo[layerId].options.geoType=='polygon'){
                    // entity.polygon.height = 500000-1000*entity.properties.hvalue
                    entity.polygon.material = Color.fromBytes(symbol.color[0],symbol.color[1],symbol.color[2],symbol.color[3]);
                    entity.polygon.outline = true
                    entity.polygon.outlineWidth = symbol.outlineWidth
                    entity.polygon.outlineColor = Color.fromBytes(symbol.outlineColor[0],symbol.outlineColor[1],symbol.outlineColor[2],symbol.outlineColor[3]);
                    entity.polygon.extrudedHeight = symbol.extrudedHeight || null;
                }
                debugger
                if(layersInfo[layerId].options.geoType=='polyline'){
                    entity.polyline.material = Color.fromBytes(symbol.color[0],symbol.color[1],symbol.color[2],symbol.color[3]);
                    entity.polyline.width = symbol.width
                }
                if(layersInfo[layerId].options.geoType=='point'){
                  entity.point = {
                    pixelSize: symbol.pixelSize,
                    color:Color.fromBytes(symbol.color[0],symbol.color[1],symbol.color[2],symbol.color[3]),
                    outlineColor:Color.fromBytes(symbol.outlineColor[0],symbol.outlineColor[1],symbol.outlineColor[2],symbol.outlineColor[3]),
                    outlineWidth:symbol.outlineWidth,
                    heightReference: (zjnCesium.viewer.scene.mode == SceneMode.SCENE3D) ? HeightReference.CLAMP_TO_GROUND : null,
                    clampToGround: true
                  };
                }
            }
        }
        layersInfo[layerId].entities=entities
        calleend()
    });
}
export function CommonRefreshPolygon(data,dataField,geoField,layerId,layersInfo,LayersRenderSet){
    for(var i = 0, leni = data.length; i < leni; i++){
        for (var j = 0, lenj = layersInfo[layerId].entities.length; j < lenj; j++){
            if(data[i][dataField] == layersInfo[layerId].entities[j].properties[geoField]['_value']){
                var symbol = getLyaerRenderSymbol(LayersRenderSet,layerId,data[i]);
                if(symbol != null){
                    if(layersInfo[layerId].options.geoType=='polygon'){
                        layersInfo[layerId].entities[j].polygon.material = Color.fromBytes(symbol.color[0],symbol.color[1],symbol.color[2],symbol.color[3]);
                        layersInfo[layerId].entities[j].polygon.outline = true
                        layersInfo[layerId].entities[j].polygon.outlineWidth = symbol.outlineWidth
                        layersInfo[layerId].entities[j].polygon.outlineColor = Color.fromBytes(symbol.outlineColor[0],symbol.outlineColor[1],symbol.outlineColor[2],symbol.outlineColor[3]);
                        layersInfo[layerId].entities[j].polygon.extrudedHeight =symbol.extrudedHeight || null;
                    }
                    if(layersInfo[layerId].options.geoType=='polyline'){
                        layersInfo[layerId].entities[j].polyline.material = Color.fromBytes(symbol.color[0],symbol.color[1],symbol.color[2],symbol.color[3]);
                        layersInfo[layerId].entities[j].polyline.width = symbol.width
                    }
                    layersInfo[layerId].entities[j].show = true
                }
            }
        }
    }

}

  如果对您有所帮助,请点赞打赏支持!

技术合作交流qq:2401315930

最后分享一下地图下载器设计及下载地址:

链接:https://pan.baidu.com/s/1RZX7JpTpxES-G7GiaVUxOw 
提取码:61cn

地图下载器代码结构设计及功能实现_地图下载管理器解析-CSDN博客

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐