韩国机场WebGIS可视化集合Google遥感影像分析

目录

前言

一、相关基础数据介绍

1、韩国的机场信息

 2、空间数据准备

二、Leaflet叠加Google地图

1、叠加google地图

2、空间点的标记及展示

3、韩国机场空间分布

三、相关成果展示

1、务安国际机场

2、有同类问题的机场

四、总结


前言

       12月29日8时57分左右务安国际机场塔台向济州航空7C2216航班发出鸟群撞击警报,1分钟后机长发出紧急求救信号,9时左右飞机试图在跑道着陆,9时03分左右飞机在3个起落架都没有打开的情况下以机腹着地,高速冲向跑道尽头的围栏外墙而爆炸起火。另据当地媒体公开信息,7C2216准备在1号跑道降落时发现无法正常着陆而复飞,在第二次尝试着陆时坠毁。

  除被救出的2名机组成员,其余179人已确认全部遇难。这两名空乘人员是从飞机尾部获救的,但也受了重伤。这起济州航空19年历史上唯一一起致命事故,也是发生在韩国本土人员损失最惨重的航空事故。‌2018年10月29日,印尼狮航610航班一架波音737-MAX8客机在其国内坠毁,导致189人死亡‌。重大航空事故一般并非由单一原因引起,往往是数个因素共同造成的,包括‌操作人员误判、飞机维护不善、飞机设计或制造缺陷、天气恶劣,以及安全规范和程序问题。

韩国航空公司分布示意图 

        在2024年12月,发生了许多起航空安全事件,比如阿塞拜疆的飞机经过交战区而被误击。而上述的韩国飞机由于遭遇鸟群事件之后引起的飞机失事。除却因为战争、天气等因素引起的原因。事故的原因不是本文的主要内容,准确的原因会有相关的机构给出。

        本文主要介绍一下韩国的民航机场分布情况,使用google的遥感影像来具体看一下关于跑道的尽头小土堆的事情,同时根据相关调查,发现同时还有其它的几个机场也有类似的情况,这里以WebGIS的形式对事发的机场以及相关涉及的机场进行遥感影像查看。最后祝所有的旅客都平安到达,顺顺利利。

一、相关基础数据介绍

        为了展示韩国的所有民航机场的空间分布情况,我们需要将关联全球国家信息以及民航机场信息。使用空间分析函数将韩国境内的所有民航机场信息以及位置点信息。

1、韩国的机场信息

        关于如何根据国家信息查询其对应的机场信息,这里我们使用PostGIS的空间分析函数st_contains来关联两张空间表。查询SQL如下:

-- 查询韩国的机场数据
SELECTmb.* 
FROMbiz_world_country tc,biz_global_airport_info mb 
WHEREst_contains ( tc.geom, mb.geom ) AND tc.pk_id = '1843094974686597121';

        在这条SQL语句中,biz_world_country表示国家信息表,biz_global_airport_info表示机场信息表。在数据库查询客户端中执行上述的语句之后,可以得到以下的执行结果。

 2、空间数据准备

        通过数据可以看到,韩国境内大约有26个机场。为了在Leaflet等前端组件中实现机场信息的可视化,这里我们直接使用SQL语言将机场信息查询出来。同时,为了在界面中展示主要信息,这里查询出iata_code、name_zh、name_en、lon、lat、city_name。下面将给出整理好的机场信息如下:

// 待标绘的机场信息点
var dataJson = [{iata_code:"YEC",name_zh:"醴泉",name_en:"Yecheon",lat:36.63156000000,lon:128.37036000000,city_name:"醴泉",color:""},{iata_code:"YNY",name_zh:"韩国襄阳",name_en:"Yangyang",lat:38.13333000000,lon:128.01666000000,city_name:"韩国襄阳",color:""},{iata_code:"SWU",name_zh:"水原",name_en:"Suwon",lat:37.28333300000,lon:127.01667000000,city_name:"水原",color:""},{iata_code:"OSN",name_zh:"乌山",name_en:"Osan",lat:37.08868800000,lon:127.03001400000,city_name:"乌山",color:""},{iata_code:"MPK",name_zh:"木浦",name_en:"MOKPO",lat:34.75666800000,lon:126.38500000000,city_name:"木浦",color:""},{iata_code:"CHF",name_zh:"镇海",name_en:"Jinhae",lat:35.13750000000,lon:128.69778000000,city_name:"镇海",color:""},{iata_code:"CHN",name_zh:"全州",name_en:"JEONJU",lat:37.01694500000,lon:127.93333400000,city_name:"全州",color:""},{iata_code:"JSP",name_zh:"",name_en:"Seogwipo Heliport",lat:33.23869000000,lon:126.56661000000,city_name:"济州岛",color:""},{iata_code:"JCJ",name_zh:"",name_en:"Jeju Chuja Heliport",lat:33.94444300000,lon:126.32778000000,city_name:"济州岛",color:""},{iata_code:"JGE",name_zh:"",name_en:"Geoje",lat:34.90000000000,lon:128.68333000000,city_name:"",color:""},{iata_code:"KAG",name_zh:"江陵",name_en:"Gangneung",lat:37.75222000000,lon:128.94972000000,city_name:"江陵",color:""},{iata_code:"QET",name_zh:"",name_en:"Daedeok",lat:36.42666200000,lon:127.36336500000,city_name:"",color:""},{iata_code:"QUN",name_zh:"",name_en:"A-306",lat:37.90000000000,lon:127.85000000000,city_name:"",color:""},{iata_code:"RSU",name_zh:"丽水",name_en:"Yeosu",lat:34.84190000000,lon:127.61267000000,city_name:"丽水",color:"red"},{iata_code:"WJU",name_zh:"原州",name_en:"WONJU",lat:37.44192500000,lon:127.96583600000,city_name:"原州",color:""},{iata_code:"USN",name_zh:"蔚山",name_en:"Ulsan",lat:35.59367000000,lon:129.35597000000,city_name:"蔚山",color:""},{iata_code:"KPO",name_zh:"浦项",name_en:"Pohang",lat:35.98371000000,lon:129.43375000000,city_name:"浦项",color:"red"},{iata_code:"HIN",name_zh:"泗川",name_en:"Sacheon",lat:35.09263000000,lon:128.08676000000,city_name:"泗川",color:""},{iata_code:"MWX",name_zh:"光州务安",name_en:"Muan",lat:34.99140500000,lon:126.38281000000,city_name:"光州",color:"red"},{iata_code:"KWJ",name_zh:"光州",name_en:"Gwangju",lat:35.14017500000,lon:126.81021000000,city_name:"光州",color:"red"},{iata_code:"KUV",name_zh:"群山",name_en:"GUNSAN",lat:35.98333400000,lon:126.75000000000,city_name:"群山",color:""},{iata_code:"TAE",name_zh:"大邱",name_en:"Taegu",lat:35.89925400000,lon:128.63788000000,city_name:"东京",color:""},{iata_code:"CJJ",name_zh:"清州",name_en:"Chungju",lat:36.72240000000,lon:127.49509000000,city_name:"清州",color:""},{iata_code:"GMP",name_zh:"首尔金浦",name_en:"Gimpo",lat:37.55928800000,lon:126.80351000000,city_name:"首尔",color:""},{iata_code:"CJU",name_zh:"济州",name_en:"Jeju",lat:33.50670000000,lon:126.49312000000,city_name:"济州岛",color:""},{iata_code:"PUS",name_zh:"金海",name_en:"Gimhae",lat:35.17931700000,lon:128.94873000000,city_name:"釜山",color:""}];

        有了上述的机场空间位置之后,我们就可以将这些位置信息叠加到google地图中。下面将使用Leaflet来进行google地图的调用以及相关的遥感影像数据展示。

二、Leaflet叠加Google地图

        为了比较清晰的展示高清的遥感影像数据,这里我们选用google地图。选用google地图的原因主要是很多图源并不能很直观的展示机场的跑道细节,比如百度地图或者高德地图,将地图放大到机场跑道的基本,基本是没有地图瓦片的。当然,如果您的地图上刚好有比较精确的图源,也是可以直接使用的。

1、叠加google地图

        使用Leaflet叠加google地图的底图是比较简单的,只要在Leafelt中申明google的地图xyz瓦片的访问地址即可。关键代码如下所示:

L.tileLayer('https://khms0.google.com/kh/v=992?x={x}&y={y}&z={z}', {maxZoom: 20,attribution: 'Map data &copy; <a href="https://khms0.google.com/">google map</a>, <a href="http://www.esri.com/">Esri</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>'}).addTo(map);

        为了能更清晰的展示遥感影像的细节(比如机场跑道的遥感信息),这里地图的最大层级maxZoom我们直接到20级。

2、空间点的标记及展示

        定义了底图之后,接下来就是实际空间位置的标记,关于如何在Leaflet当中进行空间位置标记比较简单,这里不再长篇累牍,将核心的代码分享给大家,供大家参考:

function getRandomColor() {var letters = '0123456789ABCDEF';var color = '#';for (var i = 0; i < 6; i++) {color += letters[Math.floor(Math.random() * 16)];}return color;
}var collisionLayer = L.LayerGroup.collision({margin:3});for(var i=0;i<dataJson.length;i++){var html var marker = L.marker([dataJson[i].lat, dataJson[i].lon], {icon: L.divIcon({iconSize: null,className: '',popupAnchor:[5,5],shadowAnchor:[5,5],html: buildHtml(dataJson[i])})}).addTo(collisionLayer);
}collisionLayer.addTo(map);function buildHtml(dataJson){var html = "";var color = dataJson.color == "" ? getRandomColor() : dataJson.color;var showInfo = dataJson.name_zh == "" ? dataJson.name_en : dataJson.name_zh;html += "<div class='marsBlackPanel' style='background:"+ color +";' animation-spaceInDown><div class='marsBlackPanel-text' ><b>["+dataJson.iata_code +"]</b><span>"+ showInfo +"机场</span></div>";html += "</div>";return html;
}

3、韩国机场空间分布

        下面来看一下韩国的机场空间分布情况,在上述代码编辑完成之后,我们在浏览器中输入访问地址后,看一下韩国的机场空间分布情况,如下所示:

        可以看到韩国的机场信息比较均匀的分布在半岛的左右两边,基本是呈现一个对称的空间关系。 基于韩国全国的机场信息和google地图遥感影像,下面来深入看一下事发机场的跑道情况,以及调查得到其它有类似问题的机场信息。

三、相关成果展示

        下面将详细介绍光州务安机场的遥感信息展示,跑道的设置展示,以及有类似问题机场跑道介绍,由于数据都是基于google地图来展示的,如果有飞行到这些机场的朋友,可以在评论区留言告知,方便大家了解相关情况。

1、务安国际机场

        务安国际机场(韩国汉语:务安国际空港,英语:Muan International Airport,IATA:MWX,ICAO:RKJB),中国常称光州务安国际机场,位于大韩民国全罗南道务安郡的西部海岸,距务安郡城区8千米,距光州广域市中心46千米,为韩国八大国际机场之一、木浦机场国内航线和光州机场国际航线的承接机场 。2007年11月9日,务安国际机场正式通航,木浦机场全部民航业务转移至务安国际机场;2008年,光州机场国际航线整体转移至务安国际机场 。据2020年3月机场官网显示,务安国际机场只有1座航站楼,航站楼设3座登机廊桥;航站楼1楼为到达厅,2楼为出发厅;跑道长2800米,宽45米 。2019年,务安国际机场共完成旅客吞吐量89.5410万人次,同比增长64.8%,韩国排名第8位;货邮吞吐量6762.0吨,同比增长73.8%,韩国排名第8位;飞机起降6585架次,同比增长72.5%,韩国排名第9位 。

        由此可以看出,务安机场是韩国比较重要的机场。通过空间位置来看一下务安机场的空间信息。务安机场位于韩国的西海岸边。

        在互联网上,有很多人对于飞机在最后的一刻装上跑道上的一堵墙表示意难平。这里我们根据遥感影像来看一下这个机场的真实跑道信息,将地图直接放到高等级,发现其跑道信息如下图所示:

光州务安国际机场

        可以在地图上看到,光州务安国际机场在位置上位于海边,这也是鸟较多的一个原因。将视角进一步拉近我们来看一下事发的跑道尽头。

        可以很明显的看到,这堵墙可以在google地图中看到。 而且同样的这种设计在韩国的其它机场也同样是存在的。

2、有同类问题的机场

        务安机场在距离跑道末端264米的地方设置了用混凝土和泥土做成防护墙的2米高的山丘。 与此相似,丽水机场设置了4米高的山丘光州浦项庆州机场分别设置了1.5米和2米高的山丘。但是,包括国内最大的机场仁川机场在内,大部分机场没有露出地面上的其他建筑物,而是在平坦面上设置了本地化设施。

        这是韩国一些机构发的现场信息,可以看到。与务安机场有类似设计的机场决不是一个。而且是上面的四个。这里我们来看看这几个具有典型代表意义的机场。

        同样的来看看跑道的尽头:

丽水机场跑道尽头 

        通过google的遥感影像,可以很清晰的看到,在跑道的尽头的设置。接下来看一下另外一个位于东海岸的机场,浦项机场。

         当然,以上的数据很多都来源于互联网,如果实际情况有不符或者出入,在此还恳请各位朋友在评论区留言指正。数据仅根据可以看到的遥感影像进行分析,如果大家平时乘坐相关的航班时,遇到不准确或者需要调整的错误,可以私发微信或者评论区留言都可以。民航安全无小事,希望每个环节都将风险降到最低,这样才能保障广大旅客的安全出行。其它正常的机场,大家感兴趣的,可以相关的地图组件进行浏览,帮助大家更直观的查看相关机场信息。

四、总结

        以上就是本文的主要内容,本文主要介绍一下韩国的民航机场分布情况,使用google的遥感影像来具体看一下关于跑道的尽头小土堆的事情,同时根据相关调查,发现同时还有其它的几个机场也有类似的情况,这里以WebGIS的形式对事发的机场以及相关涉及的机场进行遥感影像查看。行文仓促,定有许多不足之处,如有不足,在此恳请给为专家朋友在评论区留言指正,不胜感激。

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

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

相关文章

基于Django的农业管理系统

一、系统背景与意义 随着信息技术的不断发展&#xff0c;农业生产也逐渐向智能化、信息化转型。基于Django的农业管理系统正是为了满足这一需求而设计的。该系统通过集成先进的信息技术&#xff0c;旨在提升农业生产效率&#xff0c;优化资源配置&#xff0c;减少人工干预&…

后台管理系统引导功能的实现

引导是软件中经常见到的一个功能&#xff0c;无论是在后台项目还是前台或者是移动端项目中。 那么对于引导页而言&#xff0c;它是如何实现的呢&#xff1f;通常情况下引导页是通过 聚焦 的方式&#xff0c;高亮一块视图&#xff0c;然后通过文字解释的形式来告知用户该功能的作…

Yolov8训练方式以及C#中读取yolov8+onnx模型进行目标检测.NET 6.0

目录 首先你要定义v8的模型特征文件 下方是完整的模型编写函数 然后你要在控件窗体中定义应用这些方法以及函数 一、定义你的标签 二、下方是定义模块和坐标的方法 三、画框 完整推理函数代码块 效果展示 完整源码 训练其实和yolov10差不多 因为v10就是在v8的基础上做了优…

C 语言奇幻之旅 - 第16篇:C 语言项目实战

目录 引言1. 项目规划1.1 需求分析与设计1.1.1 项目目标1.1.2 功能需求1.1.3 技术实现方案 2. 代码实现2.1 模块化编程2.1.1 学生信息模块2.1.2 成绩管理模块 2.2 调试与测试2.2.1 调试2.2.2 测试2.2.4 测试结果 3. 项目总结3.1 代码优化与重构3.1.1 代码优化3.1.2 代码重构 3.…

云安全博客阅读(二)

2024-05-30 Cloudflare acquires BastionZero to extend Zero Trust access to IT infrastructure IT 基础设施的零信任 不同于应用安全&#xff0c;基础设置的安全的防护紧急程度更高&#xff0c;基础设施的安全防护没有统一的方案IT基础设施安全的场景多样&#xff0c;如se…

06-RabbitMQ基础

目录 1.初识MQ 1.1.同步调用 1.2.异步调用 1.3.技术选型 2.RabbitMQ 2.1.安装 2.2.收发消息 2.2.1.交换机 2.2.2.队列 2.2.3.绑定关系 2.2.4.发送消息 2.3.数据隔离 2.3.1.用户管理 2.3.2.virtual host 3.SpringAMQP 3.1.导入Demo工程 3.2.快速入门 3.2.1.消…

【Linux系列】并发与顺序执行:在 Linux 脚本中的应用与选择

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【机器学习篇】 科技异次元的超强 “魔杖”,开启奇幻新程

一起开启这场旅行吧&#xff0c;关注博主&#xff0c;点赞支持不迷路&#xff0c;下面一同欣赏本篇的美妙吧&#xff01;&#xff01; &#xff01; 博主主页&#xff1a; 羑悻的小杀马特.-CSDN博客 在当今科技飞速发展的时代&#xff0c;机器学习宛如一把来自科技异次元的超强…

联发科MTK6771/MT6771安卓核心板规格参数介绍

MT6771&#xff0c;也被称为Helio P60&#xff0c;是联发科技(MediaTek)推出的一款中央处理器(CPU)芯片&#xff0c;可运行 android9.0 操作系统的 4G AI 安卓智能模块。MT6771芯片采用了12纳米工艺制造&#xff0c;拥有八个ARM Cortex-A73和Cortex-A53核心&#xff0c;主频分别…

ros2笔记-2.5.3 多线程与回调函数

本节体验下多线程。 python示例 在src/demo_python_pkg/demo_python_pkg/下新建文件&#xff0c;learn_thread.py import threading import requestsclass Download:def download(self,url,callback):print(f线程&#xff1a;{threading.get_ident()} 开始下载&#xff1a;{…

人工智能的发展领域之GPU加速计算的应用概述、架构介绍与教学过程

文章目录 一、架构介绍GPU算力平台概述优势与特点 二、注册与登录账号注册流程GPU服务器类型配置选择指南内存和存储容量网络带宽CPU配置 三、创建实例实例创建步骤镜像选择与设置 四、连接实例SSH连接方法远程桌面配置 一、架构介绍 GPU算力平台概述 一个专注于GPU加速计算的…

Unity【Colliders碰撞器】和【Rigibody刚体】的应用——小球反弹效果

目录 Collider 2D 定义&#xff1a; 类型&#xff1a; Rigidbody 2D 定义&#xff1a; 属性和行为&#xff1a; 运动控制&#xff1a; 碰撞检测&#xff1a; 结合使用 实用检测 延伸拓展 1、在Unity中优化Collider 2D和Rigidbody 2D的性能 2、Unity中Collider 2D…

[微服务]redis主从集群搭建与优化

搭建主从集群 单节点Redis的并发能力是有上限的&#xff0c;要进一步提高Redis的并发能力&#xff0c;就需要搭建主从集群&#xff0c;实现读写分离。 1. 主从集群结构 下图就是一个简单的Redis主从集群结构&#xff1a; 如图所示&#xff0c;集群中有一个master节点、两个s…

自动化立体仓库堆垛机SRM控制系统自动控制功能块开发

1、堆垛机SRM控制系统硬件组态如下图 2、堆垛机SRM控制系统HMI屏幕页面如下图 驱动状态显示、堆垛机状态 3、堆垛机SRM控制系统中相关变量定义如下图 其中包含系统控制相关变量:系统急停、系统手动、复位、货叉左极限、货叉左居中 货叉右极限 货叉右居中 货叉编码器位置反…

【数据结构】栈与队列(FIFO)

在阅读该篇文章之前&#xff0c;可以先了解一下堆栈寄存器和栈帧的运作原理&#xff1a;<【操作系统】堆栈寄存器sp详解以及栈帧>。 栈(FILO) 特性: 栈区的存储遵循着先进后出的原则。 例子: 枪的弹夹&#xff0c;最先装进去的子弹最后射出来&#xff0c;最后装入的子弹…

黑马JavaWeb开发跟学(十五).Maven高级

黑马JavaWeb开发跟学.十五.Maven高级 Maven高级1. 分模块设计与开发1.1 介绍1.2 实践1.2.1 分析1.2.2 实现 1.3 总结 2. 继承与聚合2.1 继承2.1.1 继承关系2.1.1.1 思路分析2.1.1.2 实现 2.1.2 版本锁定2.1.2.1 场景2.1.2.2 介绍2.1.2.3 实现2.1.2.4 属性配置 2.2 聚合2.2.1 介…

入门级容器技术解析:Docker和K8s的区别与关系

目录 &#x1f3af;学习小目标&#xff1a; 关于容器 传统物理机&#x1f5a5;️ 虚拟机&#x1f4bb; 为什么使用容器技术呢&#xff1f;&#x1f914; 容器技术&#x1f943; Docker—容器化平台 K8s(Kubernetes)—容器编排系统​ Docker和K8s有什么关系和区别&#…

凌鸥电机开发学习记录

文章目录 9、凌鸥库函数软件过流点设定值BUG8、系统初始化7、ADC触发周期设定6、电机参数测量5、有感HALL相序问题4、电机参数问题3、PWM频率设置2、IO口对应问题1、供电问题 9、凌鸥库函数软件过流点设定值BUG 在软件过流点的判断中&#xff0c;是以当前三相电流和经过了内部…

怎样修改el-table主题样式

起因&#xff1a;el-table有主题样式&#xff0c;部分需要单独设置 环境&#xff1a;ideanodejs插件谷歌浏览器 第一步&#xff1a;找到scss文件&#xff1a; 谷歌浏览器打开表格页面&#xff0c;ctrlshifti打开开发者工具&#xff0c;点击后鼠标移动到表格单元格上单击一下…

Flink operator实现自动扩缩容

官网文档位置&#xff1a; 1.Autoscaler | Apache Flink Kubernetes Operator 2.Configuration | Apache Flink Kubernetes Operator 1.部署K8S集群 可参照我之前的文章k8s集群搭建 2.Helm安装Flink-Operator helm repo add flink-operator-repo https://downloads.apach…