Spring Boot 结合 Leaflet 实现省级旅游口号 WebGIS 可视化
前言
地理信息系统(GIS)技术在旅游、城市规划等领域展现出巨大的应用潜力。省级旅游口号作为各地旅游宣传的重要名片,传统的宣传方式往往局限于文字、图片等静态形式,难以直观地展现其背后丰富的地理与文化内涵。WebGIS 将 GIS 的强大功能与互联网的便捷性完美结合,而 Spring Boot 和 Leaflet 分别为后端服务架构和前端地图可视化提供了轻量级、高效的解决方案。
本项目旨在通过 Spring Boot 与 Leaflet 的深度结合,构建一个省级旅游口号 WebGIS 可视化平台,将各地的旅游口号与地理空间数据紧密相连,以直观、生动的地图可视化形式呈现给用户。
一、旅游口号信息管理
1、数据库设计
在旅游口号表中,我们需要关联省份信息表,在进行空间信息挖掘时,会自动关联省份空间信息。旅游口号信息表的物理结构如下:
![图片]
这里我们使用 province_code 即省级行政区划代码来进行信息关联。
![图片]
省级旅游口号的列表管理界面如上图所示。
2、空间属性关联
为了方便查询对应的省份信息,以及在 WebGIS 展示过程中快速对省份进行标注,我们需要关联三张空间信息表:省级行政区划信息表、城市基本信息表和旅游口号信息表。三者通过省级行政区划代码来进行数据关联。
数据查询 SQL 如下:
SELECT T.NAME cityName, T.pinYin, T.bz, T.slx, tc.code provinceCode, tc.NAME provinceName, st_x(T.geom) cityLon, st_y(T.geom) cityLat, slogan.slogan, st_asgeojson(tc.geom) geomJson
FROM biz_geographic_name T, biz_province tc, biz_tourism_slogans_info slogan
WHERE T.bz IN ('省会城市', '直辖市', '首都') AND st_contains(tc.geom, T.geom) AND slogan.province_code = tc.code AND slogan.activity_flag = 1
执行上述语句后,可以看到包含城市名称、拼音、坐标及 GeoJSON 数据的关联结果。
二、SpringBoot 后台实现
本节将从系统调用时序、Mapper 数据查询实现以及控制层接口实现分别进行介绍。
1、系统调用时序图
本文采用的系统架构为经典 MVC 三层架构,系统的调用时序如下:
![图片]
前端用户发起页面访问,请求转发到后台控制器中,控制器调用旅游口号 Service 的查询方法,再调用 Mapper 层的省级旅游对象查询方法。查询到数据后依次往上一层传递,最终把后台返回的数据和旅游宣传口号在地图上展示出来。
2、Mapper 数据查询实现
全国省份旅游口号查询方法核心代码如下:
package com.yelang.project.extend.scenicspot.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
com.baomidou.mybatisplus.core.mapper.BaseMapper;
com.yelang.project.extend.scenicspot.domain.TourismSlogansInfo;
com.yelang.project.extend.scenicspot.domain.TourismSlogansInfoVO;
<TourismSlogansInfo> {
+
+
+
+
+
;
List<TourismSlogansInfoVO> ;
}


