背景
地理信息系统(GIS)在旅游行业的应用日益广泛。省级旅游口号作为宣传名片,传统静态展示难以体现地理分布。结合 Spring Boot 后端与 Leaflet 前端,可以构建直观的 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 数据的集合,便于前端渲染。
后端服务实现
采用经典 MVC 架构。Controller 层负责路由分发,Service 层处理业务逻辑,Mapper 层对接数据库。 MyBatis Plus Mapper 接口定义如下:
package com.yelang.project.extend.scenicspot.mapper;
import java.util.List;
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.TourismSlogansInfo;
import com.yelang.project.extend.scenicspot.domain.TourismSlogansInfoVO;
public interface TourismSlogansInfoMapper extends BaseMapper<TourismSlogansInfo>{
static final String FIND_PROVINCE_TOURISMSLOGANS_LIST = "<script>" +
+
+
+
+
;
List<TourismSlogansInfoVO> ;
}



