近几年来,随着经济不断的发展,城市面积不断的扩大,城市管理中的园林绿化工作也在这种趋势下不断的发生着深刻改变。管养企业是否按制定的管养计划严格执行?绿化事件整改是否及时到位?绿地面积是否在稳步增长?管养的效果如何?如何客观评价管养企业的管养工作?这些都是我们各级管理者需要面对的问题。
智慧园林绿化养护管理信息平台的开发思路以“考核”为核心,整个信息平台体现出“新、快、高、全、享”五个特点。
智慧园林绿化养护管理信息平台的整个开发理念为:依托五大技术手段(全球卫星定位系统技术、地理信息系统技术、互联网、数据库技术、物联网技术),打造一个“智能化、可视化、流程化”的智慧园林绿化养护管理信息平台。本平台基于超图SuperMap GIS 9D平台开发而成。
智慧园林绿化养护管理信息平台是集硬件、网络、通信、物联网、互联网、GPS、GIS、大数据、云计算等多种信息技术应用为一体的综合性信息平台。
平台功能包括:
一、 绿地信息系统
采用无人机测绘,获得了绿地高清二维影像;采用倾斜摄影技术,快速生成三维模型,获得高清三维影像;将绿地网格的信息标注到高清二维影像中,所有绿地信息直观展现在平台中,实现了绿色资产可视化。
二、 巡查事件管理系统
开发了手机APP,在手机上完成日常监督管理工作,提供养护事件上报、处理、审核全流程可视,处理时限可控,通过文字与图片的结合,形成一个完整的管理闭环。
三、 考评考核系统
按照“双随机”的考核要求,系统提供考核地点和考核专家在平台中可随机抽取;提供周检查信息表,月度考核信息表、季度考评信息表和历次考核信息统计;按照考评考核的权重,直接在系统中生成养护公司的打分结果,以此作为对各养护公司管养能力客观评价的重要依据,杜绝了人为因素的干扰。
四、 物联网系统
在绿化带中部署温湿度传感器、电导率、土壤盐度传感器,平台可实时显示土壤的温湿度以及肥力等信息;预先设置好上下限阈值,当传感器数值低于或高于设定的阈值时,平台自动发出告警信息,提示相关人员及时进行处理;平台还提供了联结视频监控探头的接口,提供绿化设施和绿地情况的实时监控图像,丰富了平台的监管内容。
未来扩展应用还可远程控制喷灌系统开闭、病虫害监控等。
五、绿色图章系统
平台提供绿色图章申请资料上传,绿色图章审批,绿色图章验收,移植树木审批,绿地占用审批,树木修剪、砍伐审批等业务流程,彻底改变了以往人工报送的低效率工作方式,真正体现了让数据多跑路,让群众少跑腿的服务理念。
六、其他扩展功能
作为智慧园林绿化养护管理信息平台的有益补充,还开发了微信公众号用于发布园林绿化工作动态、普及园林知识、收集公众反馈意见和建议,与市民形成良性互动、共建共管机制。
由于本平台目前在国内城管领域处于行业领先水平,当地政府主流媒体均作了报道。
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title data-i18n="resources.title_popDensityRange"></title><style type="text/css">body {margin: 0;overflow: hidden;background: #fff;width: 100%;height: 100%}#map {position: absolute;width: 100%;height: 100%;}/*图例 style*/.legend {position: absolute;right: 10px;top: 350px;width: 250px;text-align: center;border: 2px solid #D6E3F1;background: #FFF;z-index: 999999;display: none;}.legendTitle {background: #1E90FF;}.legendContent {padding-left: 15px;padding-right: 15px;height: 160px;display: block;overflow-y: auto;}.legendItemHeader {top: 5px;width: 100px;height: 18px;text-align: center;}.legendItemValue {top: 5px;width: 120px;text-align: center;height: 18px;}/*信息框 style*/#infoBox {border: 2px solid #D6E3F1;position: absolute;right: 10px;top: 250px;width: 250px;z-index: 999999;display: none;}.editPane {position: absolute;right: 60px;top: 50px;text-align: center;background: #FFF;z-index: 1000;}</style></head><body><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_graduatedSymbol"></h5></div><div class='panel-body' id='params'><p></p><div align='right' class='button-group'><input type='button' id='btn1' class='btn btn-primary' data-i18n="[value]resources.btn_addThemeLayer" onclick="addThemeLayer()"/><input type='button' id='btn2' class='btn btn-primary' data-i18n="[value]resources.btn_updateData" onclick="updateData()"/><input type='button' id='btn3' class='btn btn-primary' data-i18n="[value]resources.text_input_value_clear" onclick="clearLayer()"/></div></div></div><div><div id="map"></div><div id="mapLegend" class="legend"><div class="legendTitle"><span data-i18n="resources.text_legend"></span></div><div class="legendContent"><table><tr><td class="legendItemHeader" data-i18n="resources.text_populationDensity"></td><td class="legendItemValue" data-i18n="resources.text_color"></td></tr><tr><td class="legendItemHeader">0 - 0.02</td><td class="legendItemValue" style="background: #FDE2CA"></td></tr><tr><td class="legendItemHeader">0.02 - 0.04</td><td class="legendItemValue" style="background: #FACE9C"></td></tr><tr><td class="legendItemHeader">0.04 - 0.06</td><td class="legendItemValue" style="background: #F09C42"></td></tr><tr><td class="legendItemHeader">0.06 - 0.1</td><td class="legendItemValue" style="background: #D0770B"></td></tr><tr><td class="legendItemHeader">0.1 - 0.2</td><td class="legendItemValue" style="background: #945305"></td></tr></table></div></div><div id="infoBox"><div data-i18n="resources.text_attributeTable" style="text-align: center;background: #1E90FF"> </div><div id="infoContent" style="overflow-y: auto; padding: 5px; background-color: #FFFFFF"></div></div></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 host = window.isLocal ? window.server : "https://iserver.supermap.io",url1 = host + "/iserver/services/map-jingjin/rest/maps/京津地区地图",url2 = host + "/iserver/services/data-jingjin/rest/data";var map, layer, themeLayer;// 检测是否支持 Canvasif (!document.createElement('canvas').getContext) {widgets.alert.showAlert(resources.msg_supportCanvas, false);}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}})]});layer = new SuperMap.Layer.TiledDynamicRESTLayer("Jingjin", url1, {transparent: true,cacheEnabled: true}, {maxResolution: "auto"});layer.events.on({"layerInitialized": addLayer});// 定义 Range 分段专题图层themeLayer = new SuperMap.Layer.Range("ThemeLayer");themeLayer.setOpacity(0.8);// 图层基础样式themeLayer.style = {shadowBlur: 16,shadowColor: "#000000",fillColor: "#FFFFFF"};// 开启 hover 高亮效果themeLayer.isHoverAble = true;// hover高亮样式themeLayer.highlightStyle = {stroke: true,strokeWidth: 4,strokeColor: 'blue',fillColor: "#00EEEE",//shadowBlur: 6,//shadowColor: "#000000",//shadowOffsetX: 6,//shadowOffsetY: 6,fillOpacity: 0.8};// 用于范围分段的属性字段名称themeLayer.themeField = "POP_DENSITY99";// 风格数组,设定分段范围对应的样式themeLayer.styleGroups = [{start: 0,end: 0.02,style: {color: '#FDE2CA'}},{start: 0.02,end: 0.04,style: {color: '#FACE9C'}},{start: 0.04,end: 0.06,style: {color: '#F09C42'}},{start: 0.06,end: 0.1,style: {color: '#D0770B'}},{start: 0.1,end: 0.2,style: {color: '#945305'}}]// 注册 mousemove 事件themeLayer.on("mousemove", evn);function addLayer() {map.addLayers([layer, themeLayer]);map.setCenter(new SuperMap.LonLat(117.2, 40.11), 0);}//获取 feature 数据, 专题图的数据必须是 SuperMap.Feature.Vectorfunction addThemeLayer() {clearLayer();var getFeatureParam, getFeatureBySQLService, getFeatureBySQLParams;getFeatureParam = new SuperMap.REST.FilterParameter({name: "Jingjin",attributeFilter: "SMID > -1"});getFeatureBySQLParams = new SuperMap.REST.GetFeaturesBySQLParameters({queryParameter: getFeatureParam,toIndex: 500,datasetNames: ["Jingjin:BaseMap_R"]});getFeatureBySQLService = new SuperMap.REST.GetFeaturesBySQLService(url2, {eventListeners: {"processCompleted": processCompleted, "processFailed": processFailed}});getFeatureBySQLService.processAsync(getFeatureBySQLParams);}function processCompleted(getFeaturesEventArgs) {var result = getFeaturesEventArgs.result;if (result && result.features) {themeLayer.addFeatures(result.features);}//显示图例document.getElementById("mapLegend").style.display = "block";}function processFailed(e) {widgets.alert.showAlert(e.error.errorMsg, false);}function clearLayer() {document.getElementById("mapLegend").style.display = "none";document.getElementById("infoBox").style.display = "none";//先清除上次的显示结果themeLayer.clear();}// 更新显示数据function updateData() {var feas = themeLayer.features;for (var i = 0, len = feas.length; i < len; i++) {var fea = feas[i];fea.attributes.POP_DENSITY99 = getRandomNumber(0, 0.2, 5);}themeLayer.redraw();}// 获取范围内的随机数// min - 范围下限// max - 范围上限// decimalNum - 返回结果的小数位数。如果为 0,返回整数。function getRandomNumber(min, max, decimalNum) {var rNum = min + Math.random() * (max - min);if (decimalNum) {if (!isNaN(decimalNum)) {return rNum;}else {decimalNum = parseInt(decimalNum);}if (decimalNum === 0) {return Math.round(rNum);}else {return parseFloat(rNum).toFixed(decimalNum);}}else {return rNum;}}//事件处理,控制信息框数据显示function evn(e) {if (e.target && e.target.refDataID) {document.getElementById("infoBox").style.display = "block";var fid = e.target.refDataID;var fea = themeLayer.getFeatureById(fid);if (fea) {document.getElementById("infoContent").innerHTML = "";document.getElementById("infoContent").innerHTML += "ID: " + fea.attributes.SMID + "<br/>";document.getElementById("infoContent").innerHTML += resources.text_districtName + fea.attributes.NAME + "<br/>";document.getElementById("infoContent").innerHTML += resources.text_populationDensity + ": " + parseFloat(fea.attributes.POP_DENSITY99).toFixed(5) + "<br/>";}}else {document.getElementById("infoContent").innerHTML = "";document.getElementById("infoBox").style.display = "none";}}</script></body></html>