前言
地区局势成为国际社会关注的焦点。其中,以色列与伊朗之间的冲突持续多年,局势复杂且影响深远。如何能直观、高效地呈现伊以冲突的态势,为冲突分析、预防及应对提供有力支持,是一个亟待解决的问题。传统上,冲突信息主要以文字报道、统计图表等形式传播。然而,这些方式在展现冲突的地理分布、动态变化等方面存在诸多局限。因此,构建一个可视化系统来呈现区域冲突,显得尤为关键。

在众多可视化技术中,SpringBoot 与 Leaflet 的组合展现出独特优势。SpringBoot 是 Java 领域的开源框架,它简化了基于 Spring 应用的初始搭建以及开发过程,能快速搭建稳定、高效的后端服务。Leaflet 则是轻量级的 JavaScript 地图库,它具有出色的跨浏览器兼容性,能实现流畅的地图交互。通过整合 SpringBoot 与 Leaflet 技术,以伊以冲突为典型案例,构建一个可视化系统,能为研究人员、政策制定者等提供直观的态势图。
一、相关空间要素
本节将重点讲解如何使用 PostGIS 来进行相关信息的查询,比如涉及的双方以及主要城市信息。同时在展示的同时需要同时展示第三方的势力。本节将从以下两个方面来进行说明,首先介绍如何对区域冲突的目标及其主要城市进行空间查询,接着介绍如何介绍域外第三国的实例覆盖。
1、区域冲突目标查询
首先需要对涉及的冲突目标进行查询,同时为了在地图上准确的使用首都位置进行标注,因此还需要将对应的首都信息进行标注。这里需要使用的有三张表,分别是全球主要城市信息表,国家首都信息关系表,国家信息表。查询国家信息及其对应的首都城市信息的 SQL 如下:
-- 查询伊朗、以色列的国家及首都信息
select p.name, p.name_zh nameZh, p.latitude lat , p.longitude lon, p.max_perkm maxPerkm , wc.full_chinese_name fullChineseName, wc.short_english_name shortEnglishName
from biz_ne_10m_populated_places p, biz_country_capital ca, biz_world_country wc
where ca.country_id = wc.pk_id and ca.places_id = p.pk_id and wc.short_chinese_name in ('以色列', '伊朗');
执行上述的 SQL 语句后,可以在客户端中看到以下结果:
name namezh lat lon maxperkm fullchinesename shortenglishname
Tehran 德黑兰 35.673889 51.422398 245 伊朗伊斯兰共和国 Iran
Tel Aviv 特拉维夫 32.081937 34.768066 386 以色列 Israel
2、域外第三国势力查询
同样,为了在可视化的时候展示域外第三国的势力,以伊朗为例,我们来查询距离伊朗最近的 10 个域外基地信息。因此,这里必须会使用到的数据库表有国家信息表、第三方基地信息表。在查询域外第三国势力的时候,最核心的就是对距离进行求解,这里完全使用 PostGIS 的空间距离函数进行查询。查询 SQL 语句如下:
-- 查询距离伊朗最近的美国基地
select usa.en_name enName, usa.cn_name cnName, st_x(usa.geom) lat, st_y(usa.geom) lon,
st_distance(usa.geom :: geography, polygons.geom :: geography) / distance
biz_usa_military_base usa, ( geom biz_world_country t t.short_chinese_name ) polygons
usa.geom polygons.geom limit ;






