WebGIS城市停水及影响范围可视化实践

news2024/12/17 8:43:21

目录

前言

一、相关信息介绍

1、停水信息的来源

2、停水包含的相关信息

二、功能简介

1、基础小区的整理

2、停水计划的管理

三、WebGIS空间可视化

1、使用到的组件

2、停水计划的展示

3、影响小区的展示

4、实际效果

四、总结 


前言

        城市停水,一个看似简单的问题,却可能引发一系列连锁反应,给市民的生活带来诸多不便。从家庭用水的中断到商业活动的停滞,再到公共设施的关闭,停水的影响范围广泛而深远。然而,信息的不对称和不透明往往加剧了停水带来的困扰。居民可能在停水发生后才得知情况,缺乏足够的时间做出应对措施,而城市管理者也难以准确评估停水的影响范围和程度。在这样的背景下,GIS(地理信息系统)技术的引入,为解决信息差问题提供了新的希望。

        首先,城市停水的困扰主要体现在以下几个方面:

  1. 生活不便:停水直接影响居民的日常用水,包括烹饪、清洁和个人卫生等基本需求。

  2. 经济影响:商业活动和工业生产依赖稳定的水资源,停水导致经济损失,甚至影响供应链。

  3. 健康风险:长期或频繁的停水可能导致水质下降,增加疾病传播的风险。

  4. 社会秩序:停水可能引发公众的不满和恐慌,影响社会稳定。

  5. 信息不对称:居民和企业往往在停水发生后才得知消息,缺乏准备时间,而管理者也难以及时准确地传达信息。

GIS技术的应用,为解决上述问题提供了新的途径:

  1. 实时监控与预警:GIS可以集成传感器数据,实时监控城市供水管网的状态,一旦发现异常,可以立即向相关部门和居民发出预警。

  2. 影响范围评估:通过GIS的空间分析功能,可以预测停水事件的影响范围,帮助管理者评估影响程度,制定应对措施。

  3. 资源优化分配:GIS可以帮助管理者了解水资源的分布和需求,优化水资源的分配,减少停水对特定区域的影响。

  4. 信息透明化:GIS可以将停水信息和影响评估结果直观地展示给公众,提高信息的透明度,减少恐慌和不满。

  5. 应急响应:GIS可以辅助制定应急供水计划,如确定临时供水点的位置,指导居民获取紧急用水。

  6. 长期规划:GIS可以辅助城市规划者分析供水系统的脆弱性,制定长期改进计划,提高系统的抗风险能力。

        通过GIS技术,我们不仅能够减少城市停水带来的即时困扰,还能够提高城市供水系统的韧性和可持续性。GIS的应用,使得信息传递更加迅速和准确,帮助居民和管理者更好地应对停水事件。此外,GIS还能够促进公众参与,提高公众对水资源管理的认识和参与度,共同构建更加和谐的城市水环境。

        总之,GIS技术为解决城市停水带来的信息差问题提供了强有力的工具。通过GIS,我们可以看到,尽管城市停水是一个复杂且具有挑战性的问题,但通过科技的力量,我们有希望将其带来的困扰降到最低,同时也为城市的可持续发展提供了新的思路和方法。

        本文即在此背景下产生,文章重点讲解如何将城市计划性停水信息和GIS空间知识进行融合。首先讲解城市计划性停水主要包含哪些知识,然后如何介绍管理一些基础知识,包括居民区的范围等。最后将以一个实例的方式介绍如何基于Leaflet来进行WebGIS的可视化展示。如果您也对本文涉及的领域感兴趣,不妨来这里看看。

一、相关信息介绍

        水是日常生活的基础资源,它是我们日常的物质生活中的重要组成部门。生活做饭需要水,洗衣服要用水,做饭需要用水,洗脸等需要水。试想一下,如果我们生活的小区停水后,是不是发生了许多的不便,我们需要去取水点统一打水。针对有时候的爆管或者是常规的维护,可能也会对用水安全产生一定的影响。虽然一些市政平台上会发出一些广告措施,但很多人还是由于信息的不对称,没有及时的掌握相关信息。这里我们首先来看一下一般的停水信息包含什么。

1、停水信息的来源

        为了避免停水给老百姓带来的生活困扰,可以让可能停水的区域进行提前存储水,将对生活的影响降到最低。通常生活所在地的水司,比如自来水公司等供水企业都会提前发布信息。这类信息通常称之为“计划性停水”。比如线路改造、官网冲洗等等。这里可以来看看,一般本地的供水企业如何来进行消息的发布。这里以长沙市为例,我们可以收到有计划性停水的信息来源可有以下几个地方。

        红网:是的,大家没有没有,大家可以在红网来看到转发的当地水司的停水信息。在某度或者某条的新闻媒体中查询到。

        这其中就包括了停水的相关重要信息,比如相关的小区、停水的起止时间(一般精确到小时)、重点影响的范围等等。

         水司官网:通常在供水的水司官网都可以看到公布的信息,因此大家可以在其网站上找到权威的信息。如下图所示:

        这里的计划性停水以“星城”长沙为例,在水司的官方网站上有明确的停水信息,这里摘录如下: 

为配合市政管网配套设施建设,我司将于2024年12月15日22:00至12月16日8:00进行山月路给水工程停水接驳工作,届时福元路(东二环-万家丽路)北侧将停水(重点影响单位及用户:富兴旺角、美丽新世界、学府华庭、保利和光尘樾、悦湖山等);邻近地区水压将减小。在恢复供水后,部分高远程区域以及二次供水泵房的楼栋,有可能延迟来水时间,请用户做好储水准备。提前通水,将不另行通知。供水客服热线96533为您提供全天候贴心服务!

2、停水包含的相关信息

        在介绍了相关的停水信息源之后,下面我们来分析一下在上面的计划性停水中都包含着于我们老百姓息息相关的信息。这里结合思维导图来进行详细的说明。

        可以在前面分享的停水信息中很直观的看到,供水企业发布的停水信息中包含的主要信息如上图的思维导图所示。包含的主要信息有: 停水原因、停水时间、停水大致范围、重点小区、公共附属信息。停水时间是一个很重要的时间维度的信息,而重点小区则是空间维度的信息。其它的信息都属于附加的信息。而作为一名空间技术的应用者,我们不难发现,这个空间维度信息其实可以用AOI或者POI的方式进行解决。因此如何基于AOI或者POI来解决上述的信息提示的困难问题,如何帮助我们的企业用户快速的进行信息的发布,而用水的使用者则可以快速的知道停水信息,从而更加合理的规划用水时间和是否需要储存水的评估。

二、功能简介

        为了实现上述的供水企业停水范围的可视化,首先我们汇总管理两个重要的数据,第一个我们的停水信息,主要包括停水原因及停水的计划起止时间。第二个数据是涉及的小区信息,对于小区信息可以是AOI数据,也可以是POI数据,根据需求是否需要满足精准查询,如果是AOI可以最好。当然,这些AOI数据需要进行动态管理,比如城市更新后,新建了小区,我们需要及时在系统中进行登记小区信息。这里对涉及的相关数据进行统一管理。

1、基础小区的整理

        对于供水企业,如果能拿到用水城市的的小区的范围数据就比较好,如果实在获取不到,也可以从互联网上下载POI数据,当前在高德或者百度地图也是有对应的AOI数据获取,为了简单,大家可以从官方获取相关的数据。

        大家可以将这些数据进行保存到空间数据库中,当然这是一件比较费时的工作,在刚开始的时候,由于缺乏基础数据从而导致数据效果不是很好。当我们把这些小区的AOI数据采集到空间数据库后,就形成整个城市的小区数据基础。而且这个库需要在后续定期更新也是一项重点的工作,只有跟城市的发展同步,才能在运用数据时得心应手,不会出现数据不准确的情况。在实际的工作过程当中,主要有以下三种情况需要考虑。第一种就是随着城市的发展,新建了一些小区,这种处理比较简单,只需要将数据及时采集入库即可。第二种是城市发展过程中,小区的名字变更或者小区范围的变更,这种数据也需要关注,此时需要把小区的名称或者空间范围进行及时更新才行。空间数据的更新可以重新导入数据或者将小区删掉后重新加入。第三种就是由于拆迁等情况,原来的小区在后续的供水中会进行删除,针对这种情况,为了保留原来的信息完整,我们可以设置一个使用的标记状态,这样就可以既能关联到原来的历史信息,又能不影响未来的业务开展。

2、停水计划的管理

        之前的内容中讲过,针对水司而言,我们可以在做停水计划的时候,就把相关联的小区信息进行关联,而如果是第三方信息,我们可以基于自然语言来进行信息的提取,然后将匹配的小区与空间库中的空间数据进行匹配,进而可以满足我们的影响小区的查询。通常停水都是一定时间段的,也不能是长时间的,因此我们的停水时间一定是较短的时间。有了这两方面的数据管理之后,我们就可以进行WebGIS应用的设计与实现了。

三、WebGIS空间可视化

        这里假设已经有了停水计划的信息梳理,也包含了停水影响范围内的小区信息。这里以Leaflet为例,重点讲述如何把停水计划和小区AOI信息在地图上展示出来。展望未来,我们可以基于用户的位置来自动判断当前是否有停水计划,同时也可以查询距离当前位置最近的停水小区。持续的停水时间等等,通过公众号、小程序、手机短信等电子通信手段来进行通知,通过一些可控的信息来减少信息差,提高用水用户的满意度。本节重点介绍如何在Leaflet中展示这些信息。

1、使用到的组件

        在正式介绍系统功能之前,我们来介绍一下这个功能需要用到的前端组件。

序号组件名称作用
1leaflet地图渲染组件
2leaflet-sidebar侧边栏展示组件
3jquery.jsDOM操作组件

2、停水计划的展示

        首先需要对停水计划的主要信息进行信息,这里我们采用居右展示的侧边栏来展示,实际项目中需要替换成实际的内容,这里以静态内容为示例。

<div class="center-flex">
	城市停水及影响范围可视化
</div>
<div id="sidebar" class="sidebar collapsed">
   <!-- Nav tabs -->
   <div class="sidebar-tabs">
       <ul role="tablist">
          <li><a href="#home" role="tab" id="xz_info"><i class="fa fa-bars"></i></a></li>
       </ul>
   </div>

   <!-- Tab panes -->
   <div class="sidebar-content">
       <div class="sidebar-pane" id="home">
            <h1 class="sidebar-header">
                 停水计划列表
                <span class="sidebar-close"><i class="fa fa-caret-right"></i></span>
            </h1>
			<p style="font-size:16px;color:#ff5200;">一、计划停水信息 &nbsp; </p>
            <p style="font-size:16px;color:#ff5200;">停水原因:【幸福区】大型施工停水 &nbsp; </p>
			<p style="font-size:16px;color:#ff5200;">开始时间:2024年12月15日22:00 &nbsp;</button></p>
		<p style="font-size:16px;color:#ff5200;">结束时间:2024年12月16日08:00 &nbsp; </p>
			<hr/>
			<p style="font-size:16px;color:#002bff;">二、重点影响单位及用户&nbsp;: </p>
				
			<p id = "lineDetails" style="padding-left: 5px;">
			</p>
        </div>
    </div>
</div>

3、影响小区的展示

        受影响小区我们采用边界展示以及DivIcon的方式进行展示,边界擦用Polygon的形式展示。关键的代码如下所示:

function loadRange(){
	showLayerGroup.clearLayers();
	var line1 = new Array();
	$("#lineDetails").html("");
	var detailsInfo = "";
			
	for(var i = 0;i < effectData.length;i++){
		var tempData = convertStr2DataArrayTrans(effectData[i].geo_shape);
		var name = effectData[i].name;
		L.marker([tempData[0][0], tempData[0][1]], {
			icon: L.divIcon({
			iconSize: null,
			className: '',
			popupAnchor:[5,5],
			shadowAnchor:[5,5],
			html: "<div class='marsBlackPanel'  animation-spaceInDown style='background:"+effectData[i].color+"'>"+
						"<div class='marsBlackPanel-text' style=''>【"+ name + "】/"+effectData[i].title+"</div>"+
						"<div class='marsBlackPanel-text' style=''>电话:"+effectData[i].tel+"</div>"+
						"</div>"
		    })
		}).addTo(showLayerGroup);
				
		detailsInfo += "<span style='font-size:16px;color:#002bff;'>"+ (i + 1) + "、【"+name + "】/"+ effectData[i].title + "<br/></span>";
		$("#lineDetails").html(detailsInfo);
				
		L.polygon([
			tempData
		],style).addTo(showLayerGroup).bindPopup(name);
	}
	mymap.addLayer(showLayerGroup);
	mymap.setView(showLayerGroup.getBounds().getCenter(),16);// 设置地图的中心位置
}

4、实际效果

        下面来看一下实际的展示效果:

        在上图中,首先在侧边栏中展示了停水的主要信息,以及重点影响单位及用户信息。这里的信息还只是文字的。 主体的地图界面中,我们展示了具体的4个受影响的小区信息。

        将受影响小区边界信息在地图上展示之后,可以发现其外围基本是按照道路来展示合围信息的。地图的底图是采用天地图来进行展示的,数据与地图贴合良好。基本满足我们的项目需要。

四、总结 

        以上就是本文的主要内容,文章重点讲解如何将城市计划性停水信息和GIS空间知识进行融合。首先讲解城市计划性停水主要包含哪些知识,然后如何介绍管理一些基础知识,包括居民区的范围等。最后将以一个实例的方式介绍如何基于Leaflet来进行WebGIS的可视化展示。行文仓促,难免有许多不足之处,如有不足在此恳请各位专家和朋友在评论区留言指正,不胜感激。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2260962.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构,链表的简单使用

任意位置删除&#xff1a; void Any_Del(LinkListPtr h,int a)//任意删 {if(NULLh||a>h->len){printf("删除失败");}LinkListPtr ph;for(int i0;i<a-1;i){pp->next;}LinkListPtr p2p;p2p2->next;p->nextp->next->next;free(p2);p2NULL;h-&g…

组织空转数据(人类+小鼠)

空间转录组&#xff08;Spatial Transcriptomics&#xff09;是一种新兴的高通量基因组学技术&#xff0c;它允许我们在组织切片中同时获取基因表达信息和细胞的空间位置信息。其可以帮助我们更好地理解细胞在组织中的空间分布和相互作用&#xff0c;揭示组织发育、器官功能和疾…

人工智能增强的音频和聊天协作服务

论文标题&#xff1a;AI-enabled Audio and Chat Collaboration Services 中文标题&#xff1a;人工智能增强的音频和聊天协作服务 作者信息&#xff1a; Emil P. Andersen, Norwegian Defence Research Establishment (FFI), Kjeller, NorwayJesper R. Goksr, Sindre E. Ha…

【操作系统1】一篇文章便可入门操作系统

操作系统 (Operating System,OS)是一种系统软件&#xff0c;它负责管理计算机的硬件和软件资源。它的主要任务是组织和调度计算机的工作&#xff0c;并分配资源给用户和其他软件。操作系统为用户和软件提供了方便的接口和环境。它是计算机系统中最基本的软件之一。 一、操作系…

51c嵌入式~单片机~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/12362395 一、STM32代码远程升级之IAP编程 IAP是什么 有时项目上需要远程升级单片机程序&#xff0c;此时需要接触到IAP编程。 IAP即为In Application Programming&#xff0c;解释为在应用中编程&#xff0c;用户自己的…

ComfyUI 与 Stable Diffusion WebUI 的优缺点比较

ComfyUI与Stable Diffusion WebUI都是AI绘画领域比较知名两款产品&#xff0c;两者存在诸多差异&#xff0c;本篇就带你熟悉二者的优劣&#xff0c;方便自己做出决策。 界面与操作 ComfyUI&#xff1a;界面简洁直观&#xff0c;通过节点和连线的方式构建工作流&#xff0c;用…

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(三)

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(三) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…

Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF

Latex代码中使用pdf图片&#xff0c;无法预览&#xff0c;提示&#xff1a; Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF 解决办法&#xff1a; 点击左边这个刷新下即可

从数据到洞察:年度数据分析实战指南

在当今数据驱动的时代&#xff0c;年度数据分析已成为企业战略规划与运营优化的核心环节。通过对海量数据的深入挖掘与分析&#xff0c;企业能够准确把握市场动态、用户行为、产品性能等多维度信息&#xff0c;进而制定更加精准有效的策略。本文将从数据收集、处理、分析到应用…

虚拟机安装+XS hell+Xfit(安装方法大致都相同,若不一样,可看其他的)

一、虚拟机 &#xff08;一&#xff09;虚拟机 虚拟机&#xff08; Virtual Machine &#xff09;通过软件模拟的完整的计算机系统。 是运行在一个完全隔离的环境中的计算机系统。通俗的讲就是虚拟出来的电脑&#xff0c;这个虚拟处理的电脑和 真实的电脑几乎一模一样&#…

RabbitMQ实现消息发送接收——实战篇(路由模式)

本篇博文将带领大家一起学习rabbitMQ如何进行消息发送接收&#xff0c;我也是在写项目的时候边学边写&#xff0c;有不足的地方希望在评论区留下你的建议&#xff0c;我们一起讨论学习呀~ 需求背景 先说一下我的项目需求背景&#xff0c;社区之间可以进行物资借用&#xff0c…

ubuntu上更改ext4格式的硬盘为 windows的 NTFS 格式参考

1. ubuntu上安装 sudo apt-get install gparted 2. 参考如下&#xff0c;下面是转换后的样例。 3.windows上添加识别新硬盘参考 先在设备管理器中 找到下面 磁盘管理 如下&#xff1a;找到类似下面的磁盘2 查看相关信息 右键可以新建卷和格式化&#xff0c;下面是已经新建…

Java 垃圾回收机制详解

1 垃圾回收的概念 垃圾回收&#xff08;Garbage Collection&#xff0c;GC&#xff09;是自动管理内存的一种机制&#xff0c;用于释放不再使用的对象所占用的内存空间&#xff0c;防止内存溢出。垃圾回收器通过识别和回收那些已经死亡或长时间未使用的对象&#xff0c;来优化…

拿到小米 Offer,却迷茫了。。

大家好&#xff0c;我是程序员鱼皮&#xff0c;12 月了&#xff0c;很多小伙伴也拿到了秋招的 Offer&#xff08;没拿到也不要灰心&#xff09;&#xff0c;但即使拿到 Offer&#xff0c;可能还会有一些其他的顾虑。今天分享我们编程导航一位鱼友的提问&#xff0c;给大家作为学…

医疗领域的网络安全预防:保障患者隐私与医疗数据安全

医疗领域的网络安全预防&#xff1a;保障患者隐私与医疗数据安全 随着信息技术的不断发展和医疗行业的数字化转型&#xff0c;网络安全在医疗领域变得愈加重要。医疗行业处理着大量的敏感数据&#xff0c;包括患者的个人信息、医疗记录、诊疗方案等&#xff0c;这些数据一旦被…

实现线性回归笔记 # 自用

线性模型可以看作是一个单层的神经网络。 对于n个输入[x1, x2, ...., xn]&#xff0c;由n个权重[w1, w2, ......, wn]以及一个偏置常数b得到的输出y&#xff0c;则称y x1w1x2w2......xnwnb称为线性模型。 即 线性模型是对n维输入的加权外加偏差。 要利用线性模型进行预测&a…

实景视频与模型叠加融合?

[视频GIS系列]无人机视频与与实景模型进行实时融合_无人机视频融合-CSDN博客文章浏览阅读1.5k次&#xff0c;点赞28次&#xff0c;收藏14次。将无人机视频与实景模型进行实时融合是一个涉及多个技术领域的复杂过程&#xff0c;主要包括无人机视频采集、实景模型构建、视频与模型…

c语言——数据结构【链表:单向链表】

上篇→快速掌握C语言——数据结构【创建顺序表】多文件编译-CSDN博客 一、链表 二、单向链表 2.1 概念 2.2 单向链表的组成 2.3 单向链表节点的结构体原型 //类型重定义,表示存放的数据类型 typedef int DataType;//定义节点的结构体类型 typedef struct node {union{int l…

【LC】876. 链表的中间结点

题目描述&#xff1a; 给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[3,4,5] 解释&#xff1a;链表只有一个中间结点…

Bugku---misc---隐写2

题目出处&#xff1a;首页 - Bugku CTF平台 ✨打开发现是一张图片&#xff0c;于是查看属性&#xff0c;放在010查看&#xff0c;这都是基本步骤了&#xff0c;发现里面有一个flag.rar&#xff01;&#xff01;&#xff01;拿binwalk分析也确实存在 ✨于是按照压缩包的起始位置…