• 基于视频AI+GIS的创新实践开发了面向公安行业的二三维一体化服务公安实战应用


           基于视频AI+GIS的创新实践开发了面向公安行业的二三维一体化服务公安实战应用。二三维一体化服务公安实战应用是以“雪亮工程”为背景,把治安防范措施延伸到群众身边,发动社会力量和广大群众共同监看视频监控,共同参与治安防范,从而真正实现治安防控“全覆盖、无死角”。在这套系统中,视频AI与二三维GIS应用充分结合,实现了基于二三维地图的视频AI解析、视频图像智能预警、三维融合实景指挥调度。

      (1)视频AI解析应用

      在GIS地图上,基于视频AI解析应用,实现人员信息、车辆信息、探头信息、建筑信息的自动识别和上图。人员信息主要识别其脸部特征、体貌特征、姿态、状态、着装颜色、纹理、体型、肤色、发型等。车辆信息主要识别车牌号、颜色、车辆类型、品牌、行驶速度、方向、贴膜颜色、改装标志、经过时刻、道路等。探头信息主要对摄像头点位信息进行上图、实现短视距、最长视距、平均视距、二维可视域、三维可视域等。建筑信息主要识别提取其建筑物特征、建筑物内各层、各房间属性信息、建筑物窗户等。

      (2)视频图像智能预警

      基于视频AI解析应用结果,结合二三维GIS地图,实现人员信息、车辆信息、探头信息的图上实时预警、预警信息查询、以及预警信息的统计分析。

      (3)三维融合实景指挥调度

      三维融合实景指挥调度基于三维GIS实现指挥调度、预案管理、信息统计、综合预警等功能,为日常勤务、重大任务提供可视、直观的决策环境,大大提高作战效率与辅助决策水平。

    
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title data-i18n="resources.title_queryByWFS"></title>
    <style type="text/css">
            .editPane {
                position: absolute;
                right: 50px;
                top: 50px;
                text-align: center;
                background: #FFF;
                display: inline-block;
                z-index: 1000;
            }
        </style>
    </head>
    <body style=" margin: 0;overflow: hidden;background: #fff; 100%;height:100%;position: absolute;top: 0;">
    <div class='panel panel-primary editPane' id='editPane' style="z-index: 99999">
    <div class='panel-heading'>
    <h5 class='panel-title text-center' data-i18n="resources.text_queryByWFS"></h5>
    </div>
    <div class='panel-body' id='params'>
    <p></p>
    <div align='center' class='button-group'>
    <input type='button' id='btn1' class='btn btn-primary' data-i18n="[value]resources.btn_polygon" onclick="drawGeometry()"/>
    <input type='button' id='btn2' class='btn btn-primary' data-i18n="[value]resources.text_input_value_clear" onclick="clearFeatures()"/>
    </div>
    </div>
    </div>
    <div id="map" style="margin:0 auto; 100%;height: 100%"></div>
    <script type="text/javascript" include="bootstrap,widgets.alert" src="../js/include-web.js"></script>
    <script type="text/javascript" exclude="iclient-classic" src="../../dist/classic/include-classic.js"></script>
    <script type="text/javascript">
        var map, layer, vectorLayer, vectorLayer, vector_style, vector_style_select, myFilter, drawings = null, draw = null,
            host = window.isLocal ? window.server : "https://iserver.supermap.io",
            url = host + "/iserver/services/map-world/rest/maps/World",
            url2 = host + "/iserver/services/data-world/wfs100";
        map = new SuperMap.Map("map", {
            controls: [
                new SuperMap.Control.LayerSwitcher(),
                new SuperMap.Control.ScaleLine(),
                new SuperMap.Control.Zoom(),
                new SuperMap.Control.Navigation({
                    dragPanOptions: {
                        enableKinetic: true
                    }
                })]
        }, notice());
    
        layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", url, {
            transparent: true,
            cacheEnabled: true
        }, {maxResolution: "auto"});
    
        vector_style = new SuperMap.Style({
            fillColor: '#669933',
            fillOpacity: 0.8,
            pointRadius: 8,
            strokeColor: '#aaee77',
            strokeWidth: 3
        });
    
        vector_style_select = new SuperMap.Style({
            fillColor: '#000',
            fillOpacity: 0.9,
            fontColor: '#232323',
            strokeColor: '#ffffff'
        });
    
        myFilter = new SuperMap.Filter.Comparison({
            type: SuperMap.Filter.Comparison.EQUAL_TO,
            property: "CAPITAL",
            value: ""
        });
    
        vectorLayer = new SuperMap.Layer.Vector("World Capitals", {
            strategies: [new SuperMap.Strategy.BBOX()],
            protocol: new SuperMap.Protocol.WFS({
                version: "1.0.0",
                url: url2,
                featureType: "Capitals",
                featureNS: "http://www.supermap.com/World",
                featurePrefix: "World",
                geometryName: "the_geom"
    
                //类似的ArcGIS请求参数设置(已验证返回数据)
                //version:"1.0.0",
                //url:"http://localhost:6080/arcgis/services/SampleWorldCities/MapServer/WFSServer",
                //featureType:"cities",
                //featureNS:"http://localhost:6080/arcgis/services/SampleWorldCities/MapServer/WFSServer",
                //featurePrefix:"SampleWorldCities",
                //geometryName:"shape"
            }),
    
            //filter使用方式一:
            //filter: new SuperMap.Filter.Logical({
            //    type: SuperMap.Filter.Logical.AND,
            //    filters: [
            //        new SuperMap.Filter.Comparison({
            //            type: SuperMap.Filter.Comparison.GREATER_THAN_OR_EQUAL_TO,
            //            property: "SMID",
            //            value: "50"
            //        }),
            //        new SuperMap.Filter.Comparison({
            //            type: SuperMap.Filter.Comparison.LESS_THAN_OR_EQUAL_TO,
            //            property: "SMID",
            //            value: "60"
            //        })
            //    ]
            //}),
    
            //filter使用方式二:
            filter: myFilter,
            styleMap: new SuperMap.StyleMap({
                'default': vector_style,
                'select': vector_style_select
            })
        });
    
        var select_feature_control = new SuperMap.Control.SelectFeature(vectorLayer);
        map.addControl(select_feature_control);
        select_feature_control.activate();
        layer.events.on({"layerInitialized": addLayer});
    
        //空间查询
        drawings = new SuperMap.Layer.Vector("drawings");
        map.addLayer(drawings);
        draw = new SuperMap.Control.DrawFeature(drawings, SuperMap.Handler.Polygon);
        map.addControl(draw);
    
        function drawGeometry() {
            clearFeatures();
            draw.activate();
            draw.events.on({featureadded: drawCompleted});
        }
    
        function clearFeatures() {
            vectorLayer.removeAllFeatures();
            drawings.removeAllFeatures();
        }
    
        function addLayer() {
            map.addLayers([layer, vectorLayer]);
            map.setCenter(new SuperMap.LonLat(0, 0), 0);
        }
    
        function drawCompleted(event) {
            vectorLayer.filter = new SuperMap.Filter.Spatial({
                type: SuperMap.Filter.Spatial.INTERSECTS,
                value: event.feature.geometry
            });
            vectorLayer.refresh({force: true});
            vectorLayer.filter = myFilter;
            draw.deactivate();
            widgets.alert.clearAlert();
        }
    
        function notice() {
            widgets.alert.showAlert(resources.msg_drawPolygon, true);
        }
    
    </script>
    </body>
    </html>
    


    技术交流 省涯 QQ:2252224326 2252224326@qq.com 版权所有 http://blog.sina.com.cn/u/6029512413
  • 相关阅读:
    【人生苦短,我学Python】个人学习笔记——str.count方法
    微信支付问题解决
    针对listview上面的按钮点击事件的操作
    Android界面之间的跳转和返回
    贪吃蛇
    数据库的连接
    Android中实现圆的面积的计算问题
    关于安卓环境的搭建问题
    python 获取cpu、内存、硬盘等实时信息 psutil
    python 配置文件
  • 原文地址:https://www.cnblogs.com/shengya/p/14953098.html
Copyright © 2020-2023  润新知