WebGIS在应急灾害中对村庄、风景区、机场的影响范围应用-以日喀则市定日县地震为例

目录

前言

一、关于影响范围

1、震中距离5公里

2、震中20公里范围

3、20到80公里范围

二、空间查询知识

1、相关数据介绍

2、空间数据查询

三、前后端数据查询以及web可视化实现

1、后台API实现

2、WebGIS前端实现

四、Web成果展示

1、空间位置分析

2、包含风景区数据展示

五、总结


前言

        随着全球气候变化的加剧以及人类活动的不断扩张,自然灾害和人为灾害的频率与强度呈现出上升趋势。这些灾害对人类社会的各个方面,尤其是对村庄、风景区和机场等关键区域的影响日益显著。在灾害应急响应中,准确评估灾害影响范围是制定有效救援计划和资源分配策略的关键因素。WebGIS(Web Geographic Information System)作为一种基于网络的地理信息系统,为灾害影响范围的快速评估和可视化提供了强大的工具。

        WebGIS技术结合了地理信息系统(GIS)的空间分析能力和互联网的广泛接入优势,使得灾害信息能够实时更新和共享。在村庄遭受洪水、地震等灾害时,WebGIS可以迅速整合地理数据,如地形、建筑分布和人口密度等,通过空间分析模型计算出受影响的区域范围。这不仅有助于救援队伍确定优先救助的村庄,还能为物资分配和人员疏散提供科学依据。

        对于风景区而言,WebGIS的应用同样至关重要。风景区通常具有独特的自然景观和生态系统,灾害可能会对其造成严重的破坏。通过WebGIS,管理者可以实时监测灾害对景区内自然资源和基础设施的影响,及时调整游客路线和救援策略,减少灾害对风景区的长期损害。

        机场作为重要的交通枢纽,在灾害发生时,其运营状态直接关系到救援物资的运输和人员的疏散效率。WebGIS能够实时显示机场周边的灾害情况,包括洪水淹没范围、地震烈度分布等,帮助机场管理部门评估机场的运行安全和可能的关闭时间。此外,WebGIS还可以与航班管理系统相结合,为航班调整和应急疏散提供决策支持。

        本文以近日发生在日喀则市定日县的6.8级地震灾害为例重点讲解如何结合距离来进行影响范围评估。通过关联震中附近的村庄、风景区、机场等重要居民点和公共交通点,这些场所都是人员高度聚居的场所,通过这些数据来进行辅助分析。完整首先讲解如何在空间数据库中进行三种空间数据的关联和查询,然后使用SpringBoot讲解如何进行使用影响范围查询开发,通过构建5公里高风险区和20公里中风险区以及80公里低风险区,最后结合Leaflet等前端组件对相关数据进行可视化,为相关的领导和救援人员提供时空位置展示,制定科学的救援计划提供数据服务。本文暂时结合震中距离来评估自然灾害的影响,暂不考虑地质情况与房屋建筑情况,后面如果有相关的数据,可以进行更一步的挖掘与探索。

一、关于影响范围

        地震最为一种破坏性极强的自然灾害,而且如果发生在夜晚的自然灾害对人类的影响也将十分巨大。地震的直接影响范围取决于多种因素,包括震级、震源深度、地质构造、地表条件等。众所周知,在地震的震中位置,越靠近震中位置的地方,受到的影响就越大。因此,将距离震中的不同范围进行一个合理的划分,对于研究地震的影响范围有很大的意义。当然,关于影响范围不是一个固定的值,这里采用一些固定的范围,伴随着范围的扩大,地震的影响会显著的降低。因此这里我们将研究的空间距离范围进行一点的限制。

1、震中距离5公里

  • 破坏程度:震中5公里范围内的破坏通常最为严重。建筑物可能会遭受重大损坏或倒塌,基础设施如道路、桥梁等可能无法使用。例如,在西藏日喀则市定日县的6.8级地震中,震中5公里范围内的村庄如塘仁村、雪珠村等受到了显著影响。
  • 人口影响:震中5公里范围内的人口密度和建筑物密集度决定了人员伤亡和财产损失的程度。例如,宁夏银川市永宁县4.8级地震震中5公里范围内平均海拔约1113米

        因此,震中附近5公里范围内的影响是非常巨大的。这也意味着,在进行救援计划的指定时,需要重点考虑5公里范围的居民点、机场、风景区等。可以结合这些地区的人口密度、地址构造情况、建筑建成情况等进行综合评估。

2、震中20公里范围

  • 破坏程度:在震中20公里范围内,建筑物和基础设施的损害程度进一步减轻,但仍可能有轻微的破坏,如墙皮脱落、窗户破碎等。例如,在西藏日喀则市定日县的6.8级地震中,震中20公里范围内的乡镇如措果乡、曲洛乡受到了影响。
  • 人口影响:震中20公里范围内的人口数量可能更大,因此可能有更多的人员感受到地震的影响,但伤亡和损失相对较小

        从5公里到20公里的范围内,影响程度会随着距离的增加而衰减,但依然会有一定的破坏性,而建筑的倒塌情况也会伴随着距离有很大的改善,因此可以随着这个距离的扩大在制定救援计划时将这类地区依据距离进行优先级排序。

3、20到80公里范围

        对于超过20公里的地震影响,会更小。这里之所以研究80公里范围内,是因为想查看80公里范围的飞机场位置,飞机作为一种快速机动的救援方式,在争分夺秒的抢救中发挥了非常重要的作用。因此,飞机场不仅是评估影响的重要因素,也是评估救援方案的一种重要因素。物资可以通过飞机快速的运抵灾区。

二、空间查询知识

        在介绍了前面的影响范围之后,本节将介绍如何将居民点、飞机场、风景区的信息进行整合查询,通过影响半径的划定来进行空间信息查询。通过本节,大家可以掌握如何实现对这三类信息进行关联过滤查询。

1、相关数据介绍

        这里提到的居民点、飞机场、风景区等数据,在个人博客中的均有提及,在进行实际的灾害分析时,还可以结合AOI数据,不仅是包含居民点,还包括学校、医院、养老院、办公楼等重要场所进行完整的空间分析。本文仅展示一种空间影响范围的分析。这三类数据分别存储在三张表中,这三张表的主要字段信息如下图所示:

2、空间数据查询

         要实现查询指定范围内的不同标识地点,需要借助空间数据库中的空间查询函数st_dwithin(geography,geography)和距离求解函数st_distance(geography,geography)以及根据geometry求解经度和纬度的函数st_x(geometry)和st_y(geometry)。同时为了同时将这三张表的数据集中汇总到一起,然后与地震信息进行关联,这里需要使用数据库中的高级查询With查询,数据查询sql语句如下:

with bp as (select bce.geom from biz_ceic_earthquake bce where bce.pk_id = 1876603675057643521
)
select ta.* from (
select t.id pk_id,t.name,'scenicspot' as type,st_x(t.geom) lon,st_y(t.geom) lat, 
st_distance(t.geom :: geography, bp.geom :: geography) dist from biz_scenic_spot t,bp 
where st_dwithin(t.geom :: geography,bp.geom :: geography,20000 )
union
select t.pk_id,t.name_zh as name,'airport' as type,t.lon_wgs84 lon,t.lat_wgs84 lat, 
st_distance(t.geom :: geography, bp.geom :: geography) dist from biz_global_airport_info t,bp
where st_dwithin(t.geom :: geography,bp.geom :: geography,80000 )
union 
select t.id pk_id,t.village_name as name,'village' as type,st_x(t.geom) lon,st_y(t.geom) lat, 
st_distance(t.geom :: geography, bp.geom :: geography) dist from biz_village t,bp 
where st_dwithin(t.geom :: geography,bp.geom :: geography,20000 )
) ta order by ta.dist ;

        在navicat的客户端中执行上述的SQL之后,可以得到以下的查询结果:

        在上面的SQL中,我们使用的距离计算都需要先转成geography,这样的求解结果单位就是米,可以在后续的条件中输入以米为计算单位的距离。 在最开始的时候,将地震的结果一次性查出来,在后面的查询过程中就不需要单个关联,这样就大大的提升了查询效率。

三、前后端数据查询以及web可视化实现

        在掌握了空间数据表的空间查询方法之后,下面我们就可以基于这个空间函数查询进行WebGIS的开发。后台设计的程序比较简单,主要是将上面的SQL语句写入到Mybatis_Plus当中,然后让控制层进行调用和执行。

1、后台API实现

        当前端输入一个地震的主键值之后,后台可以通过控制层调用业务层,而业务层调用数据访问层,然后实现空间数据的访问。这里将后台API控制层的方法展示出来,如果有问题,可以在评论区留言指出。

/***- 获取地震影响信息列表,用post* @param pkId* @return
*/
@PostMapping("/effect/{pkId}")
@ResponseBody
public AjaxResult effect(@PathVariable("pkId")Long pkId){AjaxResult ar = AjaxResult.success();List<EarthQuakeEffectVo> dataList = ceicEarthQuakeService.findEffectList(pkId, 20000, 80000, 20000);ar.put("data", dataList);return ar;
}

2、WebGIS前端实现

        后端提供好了对应的接口之后,前端就可以调用这个接口传入地震的主键ID,然后将ID对应的空间范围内的居民点、机场、风景区进行查询及展示。前端使用Leaflet对这些位置点进行渲染,同时标注具体的距离信息。为相关部门决策提供依据和基础。

function showDistance(){$.ajax({  type:"post",  url:prefix + "/effect/" + [[${pkId + ''}]],  dataType:"json",  cache:false,processData:false,success:function(result){if(result.code == web_status.SUCCESS){var strokeStyleSet = "green";for(var i=0;i<result.data.length;i++){var dataInfo = result.data[i];var dist = dataInfo.dist;var zindex = 3;//排序号很重要,会优先展示if(parseFloat(dist) <= 5000){strokeStyleSet = "red";}if(parseFloat(dist) > 5000 && parseFloat(dist) <= 20000 ){strokeStyleSet = "orange";zindex = 2;}if(parseFloat(dist) >= 20000){strokeStyleSet = "green";zindex = 1;}var _dist = parseFloat(dataInfo.dist / 1000).toFixed(2);var content = "<strong>影响地点:</strong>"+dataInfo.name + "<br/><strong>震中位置:</strong>"+ cityInfo;content += "<br/><strong>距离(千米):</strong>"+_dist;var type = "村庄";if(dataInfo.type == "scenicspot"){type = "风景区";}if(dataInfo.type == "airport"){type = "机场";}var marker = L.circleMarker(new L.LatLng(dataInfo.lat, dataInfo.lon), {radius: 8,labelStyle: {text: type + ":"+ (i + 1 )+  dataInfo.name + "(" + _dist + "千米)",rotation: 0,zIndex: zindex,strokeStyle :strokeStyleSet},color : strokeStyleSet}).addTo(mymap);marker.bindPopup(content);  L.polyline([[[lat, lon],[dataInfo.lat, dataInfo.lon]]], {labelStyle: {//text: cityInfo + ">" +dataInfo.name + ":"  + _dist + "千米",//text: _dist + "千米",zIndex: 0,collisionFlg: false,textAlign:'center',strokeStyle :strokeStyleSet},color : strokeStyleSet}).addTo(mymap);}}mymap.setZoom(9);//再次缩放到9级},error:function(){$.modal.alertWarning("获取信息失败");}});
}

        需要注意到是,这里的图例生成与目标点的marker标定时,为了让震中5公里范围的的marker标记可以快速的展示出来,我们对标记的zindex进行设置。同时按照不同的影响范围点类型,将居民点、风景区、机场等进行分别的追加标注。

四、Web成果展示

        本节结合具体的地震信息,将实现震中地震的WebGIS影响范围评估,通过5公里范围、20公里影响范围,80公里影响范围及其包含的空间点位置信息,让大家看到地震的实际影响范围。地震信息来源于国家地震台网。这也是为什么选择WebGIS来实现这个需求,传统的C/S的桌面制图,耗时费力,使用WebGIS的方式来实现,把主要的数据源固化之后,剩下的展示工作就比较简单了。这里以定日县地震为例重点讲解地震影响范围。

1、空间位置分析

        首先在地震台网信息展示列表中可以看到以下信息:

        这是同步过来的数据,点击操作按钮栏中的最后一个按钮即“震中影响”,在新打开的影响评估窗口中可以看到这三类点位数据以及列表数据。

        首先通过红、黄、绿灯三色标识来进行不同风险级别的标注。表示5公里、5-20公里、20-80公里影响范围点位信息。在上面的地图界面中,我们可以很清晰的看到,本次定日县的地震,对机场的影响较小,两者的直线距离相差63.62千米。本次地震震中附近20公里范围内无旅游景区,但是居民点还是比较多的。将地图进一步的放大,查看受灾严重的5公里范围内点位。

        可以看到,距离震中位置5公里范围的乡村,在空间位置上都是位于震中的东南角。 更详细的距离名单,可以看表格的右边。最近的是塘日村,距离2.56千米。这距离相当近了,需要重点关注。5公里范围的乡村信息如下:

名称类型距离(千米)
1、塘日村村庄2.56
2、雪珠村村庄2.59
3、嘎热果吉村村庄2.61
4、美朵村村庄3.68
5、吉翁村村庄4.89
6、吉定村村庄4.90

2、包含风景区数据展示

        在前面的地震数据展示中,并没有风景区的数据,机场的数据是有的,只是因为距离的原因,排在了最后面。这里来看一下包含风景区的数据。以2017年四川阿坝州九寨沟县7.0地震为例,来看一其对风景区的影响范围。

        可以看到,距离震中仅10公里内就有5A级景区九寨沟风景名胜区以及距离8公里的爱琴海景区。 同时可以看到震中位置距离九寨沟黄龙机场仅有40公里。

五、总结

        以上就是本文的主要内容,本文以近日发生在日喀则市定日县的6.8级地震灾害为例重点讲解如何结合距离来进行影响范围评估。通过关联震中附近的村庄、风景区、机场等重要居民点和公共交通点,这些场所都是人员高度聚居的场所,通过这些数据来进行辅助分析。完整首先讲解如何在空间数据库中进行三种空间数据的关联和查询,然后使用SpringBoot讲解如何进行使用影响范围查询开发,通过构建5公里高风险区和20公里中风险区以及80公里低风险区,最后结合Leaflet等前端组件对相关数据进行可视化,为相关的领导和救援人员提供时空位置展示,制定科学的救援计划提供数据服务。本文暂时结合震中距离来评估自然灾害的影响,暂不考虑地质情况与房屋建筑情况,后面如果有相关的数据,可以进行更一步的挖掘与探索。

        尽管WebGIS在灾害应急中的应用前景广阔,但仍面临着数据准确性、实时性和用户界面友好性等挑战。为了充分发挥WebGIS在灾害影响范围评估中的作用,需要进一步加强数据采集和更新机制,优化空间分析算法,并提高系统的易用性。本文旨在探讨WebGIS在应急灾害中对村庄、风景区和机场影响范围的具体应用,分析其优势与局限,并提出相应的改进策略,以期为灾害应急管理和决策提供科学依据和技术支持。行文仓促,定有许多不足之处,如有不足,还恳请各位专家博主在评论区留言指出,不胜感激。

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

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

相关文章

【UE5 C++课程系列笔记】27——多线程基础——ControlFlow插件的基本使用

目录 步骤 一、搭建基本同步框架 二、添加委托 三、添加蓝图互动框架 四、修改为异步框架 完整代码 通过一个游戏初始化流程的示例来介绍“ControlFlows”的基本使用。 步骤 一、搭建基本同步框架 1. 勾选“ControlFlows”插件 2. 新建一个空白C类&#xff0c;这里…

JavaEE之定时器及自我实现

在生活当中&#xff0c;有很多事情&#xff0c;我们不是立马就去做&#xff0c;而是在规定了时间之后&#xff0c;在到该时间时&#xff0c;再去执行&#xff0c;比如&#xff1a;闹钟、定时关机等等&#xff0c;在程序的世界中&#xff0c;有些代码也不是立刻执行&#xff0c;…

国产3D CAD将逐步取代国外软件

在工业软件的关键领域&#xff0c;计算机辅助设计&#xff08;CAD&#xff09;软件对于制造业的重要性不言而喻。近年来&#xff0c;国产 CAD 的发展态势迅猛&#xff0c;展现出巨大的潜力与机遇&#xff0c;正逐步改变着 CAD 市场长期由国外软件主导的格局。 国产CAD发展现状 …

linux:文件的创建/删除/复制/移动/查看/查找/权限/类型/压缩/打包

关于文件的关键词 创建 touch 删除 rm 复制 cp 权限 chmod 移动 mv 查看内容 cat(全部); head(前10行); tail(末尾10行); more,less 查找 find 压缩 gzip ; bzip 打包 tar 编辑 sed 创建文件 格式&#xff1a; touch 文件名 删除文件 复制文件 移动文件 查看文…

数据结构C语言描述11(图文结合)--二叉搜索树(BST树)的实现(数据采用KV存储形式进行封装)

前言 这个专栏将会用纯C实现常用的数据结构和简单的算法&#xff1b;有C基础即可跟着学习&#xff0c;代码均可运行&#xff1b;准备考研的也可跟着写&#xff0c;个人感觉&#xff0c;如果时间充裕&#xff0c;手写一遍比看书、刷题管用很多&#xff0c;这也是本人采用纯C语言…

Chrome_60.0.3112.113_x64 单文件版 下载

单文件&#xff0c;免安装&#xff0c;直接用~ Google Chrome, 免費下載. Google Chrome 60.0.3112.113: Chrome 是 Google 開發的網路瀏覽器。它的特點是速度快,功能多。 下载地址: https://blog.s3.sh.cn/thread-150-1-1.htmlhttps://blog.s3.sh.cn/thread-150-1-1.html

概率论与数理统计总复习

复习课本&#xff1a;中科大使用的教辅《概率论和数理统计》缪柏其、张伟平版本 目录 0.部分积分公式 1.容斥原理 2.条件概率 3.全概率公式 4.贝叶斯公式 5.独立性 6.伯努利分布&#xff08;两点分布&#xff09; 7.二项分布 8.帕斯卡分布&#xff08;负二项分布&am…

【线性代数】通俗理解特征向量与特征值

这一块在线性代数中属于重点且较难理解的内容&#xff0c;下面仅个人学习过程中的体会&#xff0c;错误之处欢迎指出&#xff0c;有更简洁易懂的理解方式也欢迎留言学习。 文章目录 概念计算几何直观理解意义PS.适用 概念 矩阵本身就是一个线性变换&#xff0c;对一个空间中的…

IDEA中创建maven项目

1. IDEA中创建maven项目 在IDEA中创建Maven项目&#xff0c;前提是已经安装配置好Maven环境。如还未配置安装Maven的&#xff0c;请先下载安装。如何下载安装&#xff0c;可参考我另外篇文章&#xff1a;maven的下载与安装教程本篇教程是以创建基于servlet的JavaWeb项目为例子&…

windows记事本不显示下划线

问题已解决 问题复现 解决方法 原因特定情况下默认的字体大小会导致下划线不可见&#xff0c;只需crtl加号的快捷键或者ctrl前或者后滚动鼠标滚轮以改变字体大小即可

git问题

拉取项目代码后&#xff0c;出现 1、找回未commit的代码 2、记录不全&#xff0c;只是显示部分代码记录

Operation001-Install

操作001&#xff1a;RabbitMQ安装 一、安装 # 拉取镜像 docker pull rabbitmq:3.13-management# -d 参数&#xff1a;后台运行 Docker 容器 # --name 参数&#xff1a;设置容器名称 # -p 参数&#xff1a;映射端口号&#xff0c;格式是“宿主机端口号:容器内端口号”。5672供…

rom定制系列------小米max3安卓12 miui14批量线刷 默认开启usb功能选项 插电自启等

小米Max3是小米公司于2018年7月19日发布的机型。此机型后在没有max新型号。采用全金属一体机身设计&#xff0c;配备6.9英寸全面屏.八核处理器骁龙636&#xff0c;后置双摄像头1200万500万像素&#xff0c;前置800万像素.机型代码 &#xff1a;nitrogen.官方最终版为稳定版12.5…

Vue3学习-day3

computed计算属性函数 计算属性小案例 App.vue <script setup> import { ref, computed } from vue// 声明数据 const list ref([1,2,3,4,5,6,7,8])// 基于list派生一个计算属性&#xff0c;从list中过滤出 > 2 const setList computed(() > {return list.val…

【博主推荐】VUE常见问题及解决方案

文章目录 1.找不到模块“../views/index.vue”或其相应的类型声明。ts(2307)2.当改变 Vue 实例中的数据时&#xff0c;视图没有相应地更新3.在某些复杂的异步操作或者多个数据交互场景下&#xff0c;数据绑定的更新在时间上出现延迟4.父组件无法将数据正确地传递给子组件&#…

完整化安装kubesphere,ks-jenkins的状态一直为init

错误描述&#xff1a; 打印日志&#xff1a; kubectl describe pod ks-jenkins-7fcff7857b-gh4g5 -n kubesphere-devops-system 日志描述如下&#xff1a; Events: Type Reason Age From Message ---- ------ ---- …

1.UGUI相关

1.这一种UIcanvas下的组件,会显示在3d物体之前 2.可以设置3d物体在UI界面之前。选中第二个模式。这时候会指定一个摄像机。一般情况下&#xff0c;不用主摄像机。需要新建一个专门给UI的摄像机。相当于设置距离摄像机的远近。两个layer 可以理解成 章节&#xff0c;关卡。相同…

OSPF - 2、3类LSA(Network-LSA、NetWork-Sunmmary-LSA)

前篇博客有对常用LSA的总结 2类LSA&#xff08;Network-LSA&#xff09; DR产生泛洪范围为本区域 作用:  描述MA网络拓扑信息和网络信息&#xff0c;拓扑信息主要描述当前MA网络中伪节点连接着哪几台路由。网络信息描述当前网络的 掩码和DR接口IP地址。 影响邻居建立中说到…

【数模学习笔记】插值算法和拟合算法

声明&#xff1a;以下笔记中的图片以及内容 均整理自“数学建模学习交流”清风老师的课程资料&#xff0c;仅用作学习交流使用 文章目录 插值算法定义三个类型插值举例插值多项式分段插值三角插值 一般插值多项式原理拉格朗日插值法龙格现象分段线性插值 牛顿插值法 Hermite埃尔…

1.2 WSL中安装Centos7

官网链接使用 WSL 访问网络应用程序 | Microsoft Learn 一、Win安装WSL配置 WSL官网链接使用 WSL 访问网络应用程序 | Microsoft Learn 1.1 命令模式开启虚拟化设置步骤 # 启用适用于 Linux 的 Windows 子系统&#xff1a;打开powershell并输入&#xff1a; dism.exe /onli…