package com.lf.server.mapper.all; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Update; import java.util.List; /** * 空间基础Mapper * @author WWW * @param 泛型 */ public interface GeomBaseMapper extends BasicMapper { /** * 根据ID查询WKT * * @param tab 表名 * @param gid GID * @return WKT */ @Select("select ST_AsText(geom) geom from ${tab} where gid = #{gid} limit 1") public String selectWktById(@Param("tab") String tab, @Param("gid") Integer gid); /** * 根据表名查询空间参考 * * @param tab 表名 * @return SRID */ @Select("select ST_SRID(geom) from ${tab} where geom is not null limit 1") public Integer selectSrid(@Param("tab") String tab); /** * 根据表名查询空间类型 * * @param tab 表名 * @return SRID */ @Select("select ST_GeometryType(geom) from ${tab} where geom is not null limit 1") public String selectGeometryType(@Param("tab") String tab); /** * 查询DB中溢出的单位ID * * @param tab 表名 * @param depid 单位ID * @param geoFilter 空间过滤条件 * @return 溢出的单位ID */ @Select("") public List selectDbOverflowDep(@Param("tab") String tab, @Param("depid") String depid, @Param("geoFilter") String geoFilter); /** * 更新空间位置 * * @param tab 表名 * @param gid GID * @param wkt WKT * @return 影响行数 */ @Update("update ${tab} set geom = ST_GeomFromText('${wkt}') where gid = #{gid} limit 1") public Integer updateGeom(@Param("tab") String tab, @Param("gid") Integer gid, @Param("wkt") String wkt); }