省级旅游口号 WebGIS 可视化实践
将旅游口号与地理空间数据结合,能更直观地展示地域文化。本项目采用 Spring Boot 搭建后端服务,Leaflet 实现前端地图可视化,完成省级旅游口号的空间关联与展示。
数据层设计与空间关联
核心在于将旅游口号表与地理空间表(省份、城市)进行关联。我们需要三张表:省级行政区划信息表、城市基本信息表、旅游口号信息表。通过省级行政区划代码建立连接。
在数据库中执行空间关联查询时,需提取省会坐标及省份几何图形(GeoJSON)。以下 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 几何数据的集合,为前端渲染做准备。
Spring Boot 后端实现
后端采用经典的 MVC 三层架构。Controller 负责接收请求,Service 处理业务逻辑,Mapper 层对接数据库。
Mapper 数据查询
使用 MyBatis Plus 简化 SQL 映射。在 Mapper 接口中定义查询方法,直接复用上述空间关联逻辑:
package com.yelang.project.extend.scenicspot.mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yelang.project.extend.scenicspot.domain.TourismSlogansInfoVO;
import java.util.List;
public interface TourismSlogansInfoMapper extends BaseMapper<TourismSlogansInfo> {
static final String FIND_PROVINCE_TOURISMSLOGANS_LIST +
+
+
+
+
;
List<TourismSlogansInfoVO> ;
}



