基于SpringBoot和PostGIS的全球机场入库实践
目录
前言
在全球化的大背景下,机场作为连接世界的桥梁,其空间分布对经济、文化和政治交流具有深远的影响。随着信息技术(IT)的不断进步,全球机场的空间分布正在经历一场革命性的变革。本文将探讨全球机场的空间分布,并将这些空间数据进行入空间库管理。全球机场的空间分布一直是航空业和地理学研究的热点。根据研究,美国和欧盟被视为全球民航的“发展极”,而亚太地区则是未来航空增长最具潜力的区域。
IT技术在全球机场空间分布中扮演着越来越重要的角色。例如,通过深度学习技术,可以对全球开放数据库中的机场空间位置进行验证。这项技术通过融合多个数据集,提高了机场位置数据的准确性和完整性,为全球机场的空间分布研究提供了强有力的数据支持。此外,5G技术的应用也为全球机场空间分布带来了新的可能性。5G技术能够提供更快的数据传输速度和更低的延迟,这对于机场的运营效率和旅客体验至关重要。5G技术的应用案例包括智能行李跟踪、互联机库和数字停车等,这些都能实现高效的能效管理。随着5G技术的普及,我们可以预见,全球机场的空间分布将更加依赖于这些先进技术,以实现更高效的资源配置和旅客服务。
在全球范围内,机场的空间分布也受到多机场区域发展的影响。研究表明,全球共有170个多机场区域,涉及479个重要机场,主要分布在北美、南亚。这些多机场区域的发展特征和内部竞争强度,对全球机场的空间分布有着重要影响。IT技术,如大数据分析和人工智能,可以帮助优化这些区域内部的航线和航班时刻资源,降低航班延误,提高区域容量。
要想研究全球的交通格局,最基础的要搜集的数据就是全球的机场信息,有了全球的机场区位信息,再结合全球空间格局,通过交叉分析来实现全球大交通的空间格局构建将变得可行。因此本文将首先介绍如何进行全球机场数据的整理,如何实现部分国内空数据的补齐等,最后基于SpringBoot将这些采集到的机场信息保存到PostGIS空间数据库中,为下一步深入研究打下坚实的基础。
一、全球机场数据基础
本节将介绍一些基础网站,上面有比较完整的全球机场数据,不仅有比较详细的机场信息简介,同时还包含机场位置信息。通过本节的知识介绍,大家可以通过这些网站来获取基础信息。
1、通用运费网
通用运费网是一个包含交通元素的网站,尤其包含国际的航运比如航空、海运等相关的信息,旗下包含的信息如下所示:
感兴趣的朋友可以在其官网网站上查看相应的信息,使用浏览器打开其官网网站后可以看到以下的界面,在其界面上就包含了上面罗列的这些信息,以美国为例。
在上面的机场列表中,点击任意一个机场的超链接,打开机场信息详情,如下图所示:
这里就包含了机场的经纬度信息。大家可以去获取这些位置信息,然后保存到数据库中。以此来完成全球机场的空间数据整理工作。
2、全球机场基础数据
如果大家想直接使用互联网上的数据,这样可以减少很多的工作量,这里分享一个知乎上网友分享的数据,经过验证,数据比较全,全球一共有大约9600条信息。感兴趣的朋友可以在知乎上找到原文链接:
。这里将数据下载到了本地,数据源是Excel格式的,这里将展示部分下载后的数据。数据中包含的数据列包括:
序号 | 数据列 | 值示例 |
1 | IATA/三字代码 | CSX |
2 | 中文名称 | 长沙黄花 |
3 | 英文名称 | Changsha Huanghua |
4 | 经度 | 113.21459 |
5 | 纬度 | 28.193336 |
6 | 城市 | 长沙 |
7 | 国家英文简称 | CN |
8 | 国家中文 | 中国内地 |
在后续的空间数据库建库中,我们将按照这个表结构进行物理结构建模。
二、数据清理及空间表设计
在有了基础数据源之后,我们就需要对这些基础数据进行管理。以上述的Excel数据源为例,它的部分机场是缺乏空间经纬度坐标的。因此需要我们采用人工的方式进行补齐。本节我们重点讲解如何进行数据清理以及对应的空间表设计。
1、数据清理
为了保障入库的数据的准确性,我们先来看一下数据有没有一些明显的问题,最起码得是要保证机场位置的坐标不能为空,而对于机场的名称是可以为空的。如果有为空的坐标点,我们需要对这些坐标点进行人工补齐。然后再进行空间入库。
可以看到,以中国内地为例,有一些通用机场的位置是没有的。针对国内的数据,我们可以采用高德地图的API或者在线底图的方式进行采集。 如果是量小,使用手工采集的方式即可,如果量大,建议使用API的方式进行转化。
在控制台中可以获取对应的坐标,然后使用我们之前讲过的高德坐标转WGS84坐标的方式进行转换,最后得到准确的位置信息。
2、空间表设计
空间表的设计保持与Excel的一一对应,需要增加的是空间字段Geometry即可。表物理结构如下图所示:
这里直接将空间表的物理结构贴出来:
以上就是如何进行空间数据清理以及空间表结构设计的主要内容,通过本小节可以掌握如何进行快速的空白数据补齐和空间表设计。
三、空间数据入库及可视化
在设计了空间表之后,我们需要编写入库脚本实现将Excel数据导入到空间数据库中。本小节将重点讲解如何使用Java自动识别Excel数据,然后使用Mybatis-Plus进行空间数据入库,最后基于pgAmdin实现对空间数据的预览。
1、空间数据入库
空间数据入库比较简单,主要的难点在于如何实现Excel的读取与将Excel的每一行转换成一个对象,最后将这些数据批量的导入的空间表中。实现Excel读取的工具使用POI的工具,这里的POI并不是兴趣点。在导入之前,需要先定义与Excel的对应关系,通过@Excel注解来进行标记。实体类的定义如下所示:
然后使用Mybatis-Plus的批量操作API实现数据批量入库,考虑到大家对Mybatis-Plus的相关操作比较熟悉,因此对于Mapper的定义和Servcie层的代码开发不再进行赘述。入库的详细代码如下:
以上就实现将Excel批量读取到List集合中,然后调用Mybatis-Plus的相关API进行批量入库。
2、全球机场可视化
为了验证上面的程序是否可以运行,我们需要对上述管理的数据进行可视化。由于篇幅有限,这里不重点进行可视化的介绍。后续会着重对可视化进行讲解,这里仅以pgAdmin来验证数据是否全部入库,首先打开pgAdmin之后,在query tools中打开查询窗口,输入以下的sql语句:
然后在数据输出页面中可以看到以下的结果:
在查询结果中的最后一列,可以都看到一个预览的眼睛,可以实现对空间数据的预览。 我们来看一下所有数据的空间展示效果。
大家可以很明显的看到,美国、欧洲的机场数据都是非常密集的。中国的机场密度也挺大。 后面我们可以针对不同国家的机场数据做一次深入的分析。以此来评估全球的民航市场和潜力。
四、总结
以上就是本文的主要内容,本文将首先介绍如何进行全球机场数据的整理,如何实现部分国内空数据的补齐等,最后基于SpringBoot将这些采集到的机场信息保存到PostGIS空间数据库中,为下一步深入研究打下坚实的基础。行文仓促,难免有许多不足之处,如有不足,在此恳请各位专家博主在评论区留言批评指正,不甚感谢。
- 点赞
- 收藏
- 关注作者
评论(0)