1. 程式人生 > 其它 >無人機+數字孿生助力河長制巡查方法探討

無人機+數字孿生助力河長制巡查方法探討

配合某市河湖保護和智慧水務中心進行的河長制巡查工作。本次任務中,我們使用了自主研發的時空大資料智慧飛行服務平臺,通過全景圖、問題點位影像檔案、報告文件等形式,向用戶進行了巡查成果的彙報展示。利用無人機、大資料、人工智慧、物聯網、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;width: 100%;height:100%;position: absolute;top: 0;">
<div id="map" style="width: 100%;height:100%"></div>
<div id="control" class="control" style='width: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>