zoukankan      html  css  js  c++  java
  • 无人机+数字孪生助力河长制巡查方法探讨

           配合某市河湖保护和智慧水务中心进行的河长制巡查工作。本次任务中,我们使用了自主研发的时空大数据智能飞行服务平台,通过全景图、问题点位影像档案、报告文档等形式,向用户进行了巡查成果的汇报展示。利用无人机、大数据、人工智能、物联网、GIS、移动互联网等深度融合的科技手段,进行数据的采集、分析、研判,支撑起了河道治理从发现、执行、整改到事后监督的全流程,进一步提升了河湖智慧管理水平,也为河长制信息化建设、水环境污染治理提供了坚实可靠的飞行大数据支撑。

      无人机+数字孪生助力疫情防控

      利用自主研发的基于数字孪生的疫情防控平台,配合相关部门进行疫情防控工作。在配合成都市高新区桂溪街道办进行的巡查任务中,我们首次使用了疫情防控平台进行疫情数据采集、监控和重点小区布控工作。平台的加入,进一步提升了疫情防控信息化管理水平,为疫情防控提供坚实可靠的大数据支撑。基于该平台,不仅可将无人机拍摄的疫情巡查画面实时传送回指挥中心,为研判现场情况、高效决策部署提供有效信息;还能通过平台搭载的三维实景电子地图,对重点小区进行布控,准确定位确诊人员、隔离观察人群、密切接触人群所在区域,实现对辖区内重点人员、场所的动态管控,同时形成疫情防控热力图,及时高效地进行最新情况跟进与部署,以科技手段,全面支撑疫情防控工作部署开展。

    基于疫情防控平台完成的重点布控区域标注

    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title data-i18n="resources.title_SummaryRegionJobService"></title>
    <style>
            .control {
                position: absolute;
                top: 50px;
                right: 10px;
            }
    
            #map {
                position: absolute;
            }
        </style>
    </head>
    <body style=" margin: 0;overflow: hidden;background: #fff; 100%;height:100%;position: absolute;top: 0;">
    <div id="map" style=" 100%;height:100%"></div>
    <div id="control" class="control" style='500px'>
    <div class="panel panel-default">
    <div class="panel-heading">
    <h3 class="panel-title" data-i18n="resources.title_SummaryRegionJobService"></h3>
    </div>
    <div class="panel-body">
    <div class="input-group">
    <span class="input-group-addon"><span data-i18n="resources.text_inputData"></span><span data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span>     </span>
    <input id="datasetName" type="text" class="form-control" value="samples_processing_newyorkZone_R" />
    </div>
    <p>
    <div class="input-group">
    <span class="input-group-addon"><span data-i18n="resources.text_summaryType"></span><span data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span>     </span>
    <div>
    <select class="form-control" id="type" name="clientType">
    <option value="SUMMARYMESH" data-i18n="resources.text_summaryMesh" selected="selected">
    </option>
    <option value="SUMMARYREGION" data-i18n="resources.text_summaryRegion"></option>
    </select>
    </div>
    </div>
    <p>
    <div id="meshTypeS" class="input-group">
    <span class="input-group-addon"><span data-i18n="resources.text_meshSurfaceType"></span><span data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span>  </span>
    <select class="form-control" id="meshType" name="clientType">
    <option value="0" data-i18n="resources.text_4grid" selected="selected"></option>
    <option value="1" data-i18n="resources.text_6grid"></option>
    </select>
    </div>
    <p>
    <div id="regionDatasetS" class="input-group">
    <span class="input-group-addon" data-i18n="resources.text_summaryDataset"><span data-i18n="[title]resources.text_requiredField" style="color: red;"> * </span>  </span>
    <input id="regionDataset" type="text" class="form-control" value="samples_processing_newyorkZone_R" />
    </div>
    <p>
    <div class="input-group">
    <span class="input-group-addon" data-i18n="resources.text_analysisRange"></span>
    <input id="query" type="text" class="form-control" value="-74.050,40.650,-73.850,40.850" />
    </div>
    <p>
    <p>
    <div class="input-group">
    <span class="input-group-addon" data-i18n="resources.text_statisticStandardField"></span>
    <span class="form-control">
    <input id="standardSummaryFields" type="checkbox">
    </span>
    <span class="input-group-addon" data-i18n="resources.text_statisticWeightField"></span>
    <span class="form-control">
    <input id="weightedSummaryFields" type="checkbox">
    </span>
    </div>
    <p>
    <div id="standardS" style="display: none">
    <div class="input-group">
    <span class="input-group-addon"><span data-i18n="resources.text_statisticAttrFieldMode"></span><span data-i18n="[title]resources.text_requiredField" style="color: red;">
    * </span> </span>
    <input id="standardStatisticModes" type="text" class="form-control" value="max" />
    </div>
    <p>
    <div class="input-group">
    <span class="input-group-addon"><span data-i18n="resources.text_AttrFieldName"></span><span data-i18n="[title]resources.text_requiredField" style="color: red;">
    * </span>    </span>
    <input id="standardFields" type="text" class="form-control" value="LocationID" />
    </div>
    <p>
    </div>
    <div id="weightS" style="display: none">
    <div class="input-group">
    <span class="input-group-addon"><span data-i18n="resources.text_statisticWeightFieldMode"></span><span data-i18n="[title]resources.text_requiredField" style="color: red;">
    * </span> </span>
    <input id="weightedStatisticModes" type="text" class="form-control" value="max" />
    </div>
    <p>
    <div class="input-group">
    <span class="input-group-addon"><span data-i18n="resources.text_weightFieldName"></span><span data-i18n="[title]resources.text_requiredField" style="color: red;">
    * </span>    </span>
    <input id="weightedFields" type="text" class="form-control" value="LocationID" />
    </div>
    <p>
    </div>
    <div id="resolutionS" class="input-group">
    <span class="input-group-addon" data-i18n="resources.text_gridSize"></span>
    <input id="resolution" type="text" class="form-control" value="100" />
    </div>
    <p>
    <div id="meshSizeUnitS" class="input-group">
    <span class="input-group-addon" data-i18n="resources.text_gridSizeUnit"></span>
    <select class="form-control" id="meshSizeUnit" name="clientType">
    <option value="Meter" selected="selected">Meter</option>
    <option value="Kilometer">Kilometer</option>
    <option value="Yard">Yard</option>
    <option value="Foot">Foot</option>
    <option value="Mile">Mile</option>
    </select>
    </div>
    <p>
    <div class="input-group">
    <span class="input-group-addon" data-i18n="resources.text_lengthAndArea"></span>
    <span class="form-control">
    <input id="sumShape" type="checkbox" checked>
    </span>
    </div>
    <p>
    <div align="right">
    <input type="button" id='btn' class="btn btn-primary" data-i18n="[value]resources.btn_summary" />
    </div>
    </div>
    </div>
    <script type="text/javascript" include="jquery,bootstrap,widgets" src="../js/include-web.js"></script>
    <script type="text/javascript" src="../../dist/classic/include-classic.js"></script>
    <script type="text/javascript">var host = window.isLocal ? window.server : "https://iserver.supermap.io";
                var resultLayer,
                    processingsUrl = host + "/iserver/services/distributedanalyst/rest/v1/jobs",
                    mapURL = host + "/iserver/services/map-world/rest/maps/World",
                    map = new SuperMap.Map("map", {
                        controls: [
                            new SuperMap.Control.Navigation(),
                            new SuperMap.Control.Zoom(),
                            new SuperMap.Control.LayerSwitcher()
    
                        ],
                        allOverlays: true
                    });
                map.addControl(new SuperMap.Control.MousePosition());
                var layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", mapURL, null, {
                    maxResolution: "auto"
                });
                layer.events.on({
                    "layerInitialized": addLayer
                });
    
                function addLayer() {
                    map.addLayers([layer]);
                    map.setCenter(new SuperMap.LonLat(-73.95, 40.75), 12);
                }
    
                var processingService = new SuperMap.REST.ProcessingService(processingsUrl, {
                    withCredentials: window.isLocal
                });
                SuperMap.SecurityManager.registerToken(processingsUrl, window.exampleToken);
    
                $("#standardSummaryFields").change(function (e) {
                    if (e.target.checked) {
                        $("#standardS").show();
                        return;
                    }
                    $("#standardS").hide();
                });
                $("#weightedSummaryFields").change(function (e) {
                    if (e.target.checked) {
                        $("#weightS").show();
                        return;
                    }
                    $("#weightS").hide();
                });
                $("#type").change(function (e) {
                    if (e.target.selectedIndex === 0) {
                        $("#meshTypeS").show();
                        $("#resolutionS").show();
                        $("#meshSizeUnitS").show();
                        $("#regionDatasetS").hide();
                        return;
                    }
                    $("#meshTypeS").hide();
                    $("#resolutionS").hide();
                    $("#meshSizeUnitS").hide();
                    $("#regionDatasetS").show();
                });
    
                function getQuery() {
                    if ($('#query').val() === "") {
                        return "";
                    }
                    var query = [];
                    $('#query').val().split(',').map(function (el) {
                        query.push(parseFloat(el));
                    });
                    return new SuperMap.Bounds(
                        query[0],
                        query[1],
                        query[2],
                        query[3]
                    );
                }
    
                $('#btn').on('click', function () {
                    if ($('#msg_container')[0]) {
                        $('#msg_container').remove();
                    }
                    widgets.loader.showLoader();
                    if (map && resultLayer) {
                        map.removeLayer(resultLayer);
                    }
                    var summaryRegionJobParameter = new SuperMap.SummaryRegionJobParameter({
                        datasetName: $('#datasetName').val(),
                        regionDataset: $('#regionDataset').val(),
                        type: $('#type option:selected').attr('value'),
                        meshType: $('#meshType option:selected').attr('value'),
                        query: getQuery(),
                        standardSummaryFields: $('#standardSummaryFields').get(0).checked,
                        weightedSummaryFields: $('#weightedSummaryFields').get(0).checked,
                        standardStatisticModes: $('#standardStatisticModes').val(),
                        standardFields: $('#standardFields').val(),
                        weightedStatisticModes: $('#weightedStatisticModes').val(),
                        weightedFields: $('#weightedFields').val(),
                        resolution: $('#resolution').val(),
                        meshSizeUnit: $('#meshSizeUnit option:selected').attr('value'),
                        sumShape: $('#sumShape').get(0).checked
                    });
                    processingService.addSummaryRegionJob(summaryRegionJobParameter, function (serviceResult) {
                        if (serviceResult.error) {
                            widgets.loader.removeLoader();
                            var errorMsg = serviceResult.error.errorMsg || "code: " + serviceResult.error.code;
                            widgets.alert.showAlert(resources.msg_createFailed + "<br>" + errorMsg, false);
                            return;
                        }
                        serviceResult.result.setting.serviceInfo.targetServiceInfos.map(function (info) {
                            if (info.serviceType === 'RESTMAP') {
                                SuperMap.FetchRequest.get(info.serviceAddress + '/maps').then(
                                    function (response) {
                                        return response.json();
                                    }).then(function (result) {
                                    var mapUrl = result[0].path;
                                    resultLayer = new SuperMap.Layer.TiledDynamicRESTLayer(
                                        "resultLayer", mapUrl, {
                                            transparent: true
                                        });
                                    resultLayer.events.on({
                                        "layerInitialized": addLayer
                                    });
    
                                    function addLayer() {
                                        map.addLayer(resultLayer);
                                        widgets.loader.removeLoader();
                                    }
                                });
                            }
                        });
                    });
                });
            </script>
    </body>
    </html>


    技术交流 省涯 QQ:2252224326 2252224326@qq.com 版权所有 http://blog.sina.com.cn/u/6029512413
  • 相关阅读:
    Linux内核之旅 链表实现
    Linux内核之旅 List_entry()
    希尔排序
    华为2013校园招聘上机笔试题 ---2 字符串处理转换
    编程求凸包点集
    练习一:SQLite基本操作
    java实现单链表反转
    android-数据存储之外部file存储(sdcard)
    android-数据存储之手机内部file存储
    android-数据存储之SharedPreferences
  • 原文地址:https://www.cnblogs.com/shengya/p/14957419.html
Copyright © 2011-2022 走看看