ImageMapper.xml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.onemap.spatial.mapper.ImageMapper">
  4. <resultMap id="ImageRasterMap" type="com.onemap.spatial.domain.ImageRaster">
  5. <id column="rid" property="rid"/>
  6. <result column="rast" property="rast" typeHandler="com.onemap.spatial.typehandler.PGobjectTypeHandler"/>
  7. </resultMap>
  8. <select id="getRasterDataByWKT" resultMap="ImageRasterMap">
  9. SELECT *
  10. FROM image_16
  11. WHERE public.ST_Intersects(rast, public.ST_GeomFromText(#{wkt}, 4326))
  12. </select>
  13. <!-- <select id="getRasterImage" resultType="String">-->
  14. <!-- SET-->
  15. <!-- postgis.gdal_enabled_drivers = 'ENABLE_ALL';-->
  16. <!-- WITH geom AS (SELECT PUBLIC.ST_GeomFromText(#{wkt}, 4326) AS POLYGON),-->
  17. <!-- merged_raster AS (SELECT PUBLIC.ST_Union(rast) AS rast-->
  18. <!-- FROM image15,-->
  19. <!-- geom-->
  20. <!-- WHERE PUBLIC.ST_Intersects(rast, geom.POLYGON))-->
  21. <!-- SELECT encode(PUBLIC.ST_AsPNG(PUBLIC.ST_Clip(rast, 1, ST_Envelope(geom.POLYGON), TRUE)), 'base64') AS png-->
  22. <!-- FROM merged_raster,-->
  23. <!-- geom;-->
  24. <!-- </select>-->
  25. <!--彩色原始范围-->
  26. <!-- <select id="getRasterImage" resultType="String">-->
  27. <!-- SET-->
  28. <!-- postgis.gdal_enabled_drivers = 'ENABLE_ALL';-->
  29. <!-- WITH geom AS (SELECT ST_GeomFromText(#{wkt}, 4326) AS POLYGON),-->
  30. <!-- clipped_rasters AS (SELECT ST_Clip(rast, geom.POLYGON) AS rast_clip-->
  31. <!-- FROM image15,-->
  32. <!-- geom-->
  33. <!-- WHERE ST_Intersects(rast, geom.POLYGON)),-->
  34. <!-- merged_raster AS (SELECT ST_Union(rast_clip) AS rast_union-->
  35. <!-- FROM clipped_rasters)-->
  36. <!-- SELECT encode(ST_AsPNG(rast_union), 'base64') AS png-->
  37. <!-- FROM merged_raster;-->
  38. <!-- </select>-->
  39. <!-- 外接矩形-->
  40. <select id="getRasterImage" resultType="String">
  41. SET
  42. postgis.gdal_enabled_drivers = 'ENABLE_ALL';
  43. WITH geom AS (SELECT ST_GeomFromText(#{wkt}, 4326) AS POLYGON),
  44. clipped_rasters AS (SELECT ST_Clip(rast, ST_Envelope(geom.POLYGON)) AS rast_clip
  45. FROM image15,
  46. geom
  47. WHERE ST_Intersects(rast, ST_Envelope(geom.POLYGON))),
  48. merged_raster AS (SELECT ST_Union(rast_clip) AS rast_union
  49. FROM clipped_rasters)
  50. SELECT encode(ST_AsPNG(rast_union), 'base64') AS png
  51. FROM merged_raster;
  52. </select>
  53. <select id="getWktImage" resultType="String">
  54. SET
  55. postgis.gdal_enabled_drivers = 'ENABLE_ALL';
  56. WITH geom AS (SELECT ST_GeomFromText(#{wkt}, 4326) AS polygon),
  57. geom_extent
  58. AS (SELECT ST_AsRaster(geom.polygon, ${width}, ${height}, ARRAY['8BUI'], ARRAY[1], ARRAY[0]) AS raster_data
  59. FROM geom)
  60. SELECT encode(ST_AsPNG(geom_extent.raster_data), 'base64') AS png
  61. FROM geom_extent;
  62. </select>
  63. </mapper>