Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	tile-service/src/main/java/cn/com/taiji/tile/service/impl/TileServiceImpl.java
liwh 1 year ago
parent
commit
9495c302e8
27 changed files with 141 additions and 123 deletions
  1. 0 4
      tile-service/src/main/java/cn/com/taiji/tile/model/POI.java
  2. 47 45
      tile-service/src/main/java/cn/com/taiji/tile/service/impl/TileServiceImpl.java
  3. 8 25
      tile-service/src/main/java/cn/com/taiji/tile/style/ShapeStyle.java
  4. 80 40
      tile-service/src/main/java/cn/com/taiji/tile/util/ShapeUtils.java
  5. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-aj.png
  6. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-axcbypyj.png
  7. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-bg.png
  8. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-czw.png
  9. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-fzs.png
  10. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-galsb.png
  11. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-ggcsfxyf.png
  12. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-hajc.png
  13. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-hcz.png
  14. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-jgzzmgs.png
  15. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-jq.png
  16. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-jsj.png
  17. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-lg.png
  18. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-lgsjkyfl.png
  19. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-lgszyjkscsb.png
  20. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-mylsb.png
  21. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-qyfxfk.png
  22. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-shlsb.png
  23. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-shzlfxfk.png
  24. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-wgy.png
  25. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-wxcl.png
  26. BIN
      tile-service/src/main/resources/images/gis-layout-tools_example-xfjy.png
  27. 6 9
      tile-web/src/main/resources/application-test.properties

+ 0 - 4
tile-service/src/main/java/cn/com/taiji/tile/model/POI.java

@@ -24,8 +24,4 @@ public class POI {
     private String markerFileName;
     private int markerWidth;
     private int markerHeigth;
-
-    public boolean isShowTitle() {
-        return this.showTitle;
-    }
 }

+ 47 - 45
tile-service/src/main/java/cn/com/taiji/tile/service/impl/TileServiceImpl.java

@@ -1,4 +1,5 @@
 package cn.com.taiji.tile.service.impl;
+
 import cn.com.taiji.common.domain.PageResult;
 import cn.com.taiji.cql.model.GeoDataSource;
 import cn.com.taiji.cql.model.GeoRequestParam;
@@ -7,16 +8,16 @@ import cn.com.taiji.tile.model.POI;
 import cn.com.taiji.tile.service.ITileService;
 import cn.com.taiji.tile.style.ShapeStyle;
 import cn.com.taiji.tile.util.ShapeUtils;
-import cn.com.taiji.tile.util.TileUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.geotools.jdbc.JDBCDataStoreFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
 
 @Slf4j
 @Service
@@ -27,42 +28,25 @@ public class TileServiceImpl implements ITileService {
 
 
     @Override
-    public byte[] tileData(GeoRequestParam requestParam,GeoDataSource geoDs) {
+    public byte[] tileData(GeoRequestParam requestParam, GeoDataSource geoDs) {
 
         //2根据cql规则获取图层对应的空间地理数据
 
-        StringBuffer filterCqlStr = new StringBuffer();
-
-        String filterCql = requestParam.getCqlFilter();
-
-        if(filterCql !=null && !"".equals(filterCql)){
-
-            filterCqlStr.append(filterCql);
-        }
-
-        String bbox = requestParam.getBbox();
-
-        if(bbox !=null && !"".equals(bbox)){
-
-            StringBuffer sbBbox = new StringBuffer();
-            sbBbox.append("(bbox (");
-            sbBbox.append(geoDs.getBboxColumn()+",");
-            sbBbox.append(requestParam.getBbox()+"))");
 
-            if(filterCqlStr.length() >0){
+        long currentTimeMillis = System.currentTimeMillis();
 
-                filterCqlStr.append(" and "+sbBbox.toString());
-            }else{
+        StringBuffer sbBbox = new StringBuffer();
+        sbBbox.append("(bbox (");
+        sbBbox.append(geoDs.getBboxColumn() + ",");
+        sbBbox.append(requestParam.getBbox() + "))");
 
-                filterCqlStr.append(sbBbox.toString());
-
-            }
-
-        }
 
+//        String filterCql = requestParam.getCqlFilter()+" and "+sbBbox.toString();
+//        String filterCql = sbBbox.toString();
 
+        String filterCql = requestParam.getCqlFilter();
 
-        System.out.println("查询条件:"+filterCqlStr.toString());
+        System.out.println("查询条件:" + filterCql);
 
         Map<String, Object> cqlDsParams = new HashMap<String, Object>();
         cqlDsParams.put(JDBCDataStoreFactory.DATABASE.key, geoDs.getDataBase());
@@ -76,22 +60,38 @@ public class TileServiceImpl implements ITileService {
 
         //组装排序参数
         Map<String, Object> sortParams = new HashMap<String, Object>();
-        sortParams.put("sort","asc");
+        sortParams.put("sort", "asc");
 
-        PageResult pageResult = ecqlService.cqlQuery4Mysql(cqlDsParams,filterCqlStr.toString(),sortParams,null);
+        PageResult pageResult = ecqlService.cqlQuery4Mysql(cqlDsParams, filterCql, sortParams, null);
 
-        if(pageResult.getRecordCount() >0){
+        if (pageResult.getRecordCount() > 0) {
 
             List<Map<String, Object>> cqlDataList = (List<Map<String, Object>>) pageResult.getDatas();
 
             //3根据空间地理数据生成图层二进制数据
-            System.out.println("返回的数据:"+cqlDataList.toString());
-
-            return ShapeUtils.getTileByte( requestParam.getBbox(),convert(cqlDataList),new ShapeStyle());
+//            System.out.println("返回的数据:" + cqlDataList.toString());
+
+            System.out.println("数据查询耗时:"+(System.currentTimeMillis()-currentTimeMillis));
+            long start = System.currentTimeMillis();
+            //根据图层名称在mysql表中查询样式
+            ShapeStyle shapeStyle = new ShapeStyle();
+            InputStream in = ClassLoader.getSystemResourceAsStream("images/gis-layout-tools_example-axcbypyj.png");
+            try {
+                BufferedImage image = ImageIO.read(in);
+                shapeStyle.setHeight(12);
+                shapeStyle.setWidth(12);
+                shapeStyle.setPointMarkerImage(image);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+            byte[] tileByte = ShapeUtils.getTileByte(requestParam.getBbox(), convert(cqlDataList), shapeStyle);
+            long end = System.currentTimeMillis();
+            System.out.println("根据数据生成瓦片耗时"+(end-start));
+            return tileByte;
 
-        }else{
+        } else {
 
-            log.info("根据cql规则:"+filterCqlStr.toString()+"和图层代码:" + requestParam.getLayers() + " 没有找到图层对应的数据源的空间地理数据");
+            log.info("根据cql规则:" + sbBbox.toString() + "和图层代码:" + requestParam.getLayers() + " 没有找到图层对应的数据源的空间地理数据");
         }
 
         return new byte[0];
@@ -103,9 +103,13 @@ public class TileServiceImpl implements ITileService {
             POI poi = new POI();
             poi.setId((String) map.get("id"));
             poi.setName((String) map.get("id"));
-            poi.setShape(map.get("location").toString());
-            poi.setLat(0d);
-            poi.setLon(0d);
+            if (Objects.nonNull(map.get("location"))) {
+                poi.setShape(map.get("location").toString());
+            } else {
+                poi.setShape(String.format("POINT(%s %s)", map.get("longitude"), map.get("latitude")));
+//            poi.setLat(Double.parseDouble((String)map.get("latitude")));
+//            poi.setLon(Double.parseDouble((String)map.get("longitude")));
+            }
             poi.setPcolor("rgb(255, 255, 0)");
             pois.add(poi);
         }
@@ -114,8 +118,6 @@ public class TileServiceImpl implements ITileService {
 
     @Override
     public List<?> queryElements(String bbox, Integer type, String layerName) {
-        //1. 将bbox转换为四个点位
-
         return null;
     }
 

+ 8 - 25
tile-service/src/main/java/cn/com/taiji/tile/style/ShapeStyle.java

@@ -10,8 +10,12 @@ import java.awt.image.BufferedImage;
  */
 @Data
 public class ShapeStyle {
+    //1:点,2:线,3:面
+    private Integer type;
     //颜色支持rgb rgba 如(255,0,255) ||(255, 0, 0, 128)
     private Color color;
+    private Integer width =1;
+    private Integer height =1;
     //是否填充或者只显示边框
     private Boolean isFill;
     //边框颜色
@@ -19,47 +23,26 @@ public class ShapeStyle {
     //边框大小
     private Integer borderSize=1;
     //边框为虚线还是实现
-    private Boolean isDashed=false;
+    private Boolean isDashed;
     //虚线间隔 5像素实线,5像素空白  float[] dashPattern = {100, 10};
     private float[] dashPattern;
     //背景图片样式
-    private BufferedImage backgroundImage;
+    private BufferedImage bgImage;
     //是否显示中心点名称
     private Boolean isShowName=false;
     //字体颜色
     private Color fontColor=Color.gray;
     //字体大小
     private Integer fontSize=1;
-    /**
-     * 中心点图片
-     */
+    //中心点图片
     private BufferedImage centerPointImage;
-
-    /**
-     * 点样式
-     */
-    private Integer pointSize;
-    private Color pointColor=Color.RED;
-    private Integer pointWidth=1;
-    private Integer pointHeight=1;
-    private Boolean pointFill;
-    private Boolean pointDashed;
     private float[] pointDashPattern={2,2};
     //形状 1:正方形,2:三角形,3:圆形
-    private Integer shapeType;
+    private Integer pointType;
     private BufferedImage pointMarkerImage;
     private Integer pointMarkerImageWidth=13;
     private Integer pointMarkerImageHeight=13;
-    private Boolean pointFontShow;
-    private Integer pointFontSize=12;
-    private Color pointFontColor=Color.BLACK;
-
-    //    线样式
-    private Color lineColor=Color.black;
-    //    线宽度
-    private Integer lineWidth=4;
     //线性,1:实线,2:虚线,3:虚点线
     private Integer lineType;
-    private float[] lineDashPattern={2,2};
 }
 

+ 80 - 40
tile-service/src/main/java/cn/com/taiji/tile/util/ShapeUtils.java

@@ -14,6 +14,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.List;
 import java.util.Objects;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
  * @author zzyx 2024/1/5
@@ -34,20 +35,7 @@ public class ShapeUtils {
      */
     public static byte[] getTileByte(String bboxStr, List<POI> dataList, ShapeStyle shapeStyle) {
         BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_ARGB);
-        String[] split = bboxStr.split(",");
-        double[] bbox = new double[split.length];
-        Graphics2D graphics = image.createGraphics();
-        for (POI poi : dataList) {
-            Geometry shape = GeoUtils.getGeoUtils().createGeometry(poi.getShape());
-            //判断数据点线面
-            if (StringUtils.equals(shape.getGeometryType(), "Polygon")) {
-                drawPolygonShape(bbox, graphics, shape, poi, shapeStyle);
-            } else if (StringUtils.equalsAny(shape.getGeometryType(), "LinearRing", "LineString", "MultiLineString")) {
-                drawLineShape(bbox, graphics, shape, shapeStyle);
-            } else if (StringUtils.equals(shape.getGeometryType(), "Point")) {
-                drawPointShape(bbox, graphics, shape, poi, shapeStyle);
-            }
-        }
+        renderAndDetectClick(image, bboxStr, dataList, shapeStyle);
         ByteArrayOutputStream buffer = new ByteArrayOutputStream();
         try {
             ImageIO.write(image, "png", buffer);
@@ -82,14 +70,14 @@ public class ShapeUtils {
         int[] xpoint = new int[(geometry.getCoordinates()).length];
         int[] ypoint = new int[(geometry.getCoordinates()).length];
         convertCoordinatesToPixels(geometry.getCoordinates(), xpoint, ypoint, bbox);
-        graphics.setColor(shapeStyle.getLineColor());
+        graphics.setColor(shapeStyle.getColor());
         graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
         if (Objects.equals(shapeStyle.getLineType(), 2)) {
-            graphics.setStroke(new BasicStroke(shapeStyle.getLineWidth(), BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, shapeStyle.getLineDashPattern(), 0.0f));
+            graphics.setStroke(new BasicStroke(shapeStyle.getWidth(), BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, shapeStyle.getDashPattern(), 0.0f));
         } else if (Objects.equals(shapeStyle.getLineType(), 3)) {
-            graphics.setStroke(new BasicStroke(shapeStyle.getLineWidth(), BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, shapeStyle.getLineDashPattern(), 0.0f));
+            graphics.setStroke(new BasicStroke(shapeStyle.getWidth(), BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, shapeStyle.getDashPattern(), 0.0f));
         } else {
-            graphics.setStroke(new BasicStroke(shapeStyle.getLineWidth()));
+            graphics.setStroke(new BasicStroke(shapeStyle.getWidth()));
         }
         //端点的样式可以是圆形 (CAP_ROUND)、平直 (CAP_BUTT) 或方形 (CAP_SQUARE)
 //            连接样式:线段之间的连接可以设置为斜接 (JOIN_MITER)、圆角 (JOIN_ROUND) 或平直 (JOIN_BEVEL)。
@@ -100,20 +88,20 @@ public class ShapeUtils {
     public static void drawPointShape(double[] bbox, Graphics2D graphics, Geometry geometry, POI poi, ShapeStyle shapeStyle) {
         int[] pxy = TileUtils.toPixelXY(geometry.getCoordinate().x, geometry.getCoordinate().y, bbox[0], bbox[1], bbox[2], bbox[3]);
         //设置边框 实现轮廓
-        graphics.setColor(shapeStyle.getPointColor());
+        graphics.setColor(shapeStyle.getColor());
         graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
         //设置字体
         //设置字体样式
-        if (BooleanUtil.isTrue(shapeStyle.getPointFontShow())) {
-            Font font = new Font("Arial", Font.BOLD, shapeStyle.getPointFontSize());
+        if (BooleanUtil.isTrue(shapeStyle.getIsShowName())) {
+            Font font = new Font("Arial", Font.BOLD, shapeStyle.getFontSize());
             String s = poi.getName();
-            graphics.setColor(shapeStyle.getPointFontColor());
+            graphics.setColor(shapeStyle.getFontColor());
             graphics.setFont(font);
             graphics.drawString(s, pxy[0], pxy[1]);
         }
         BufferedImage pointMarkerImage = shapeStyle.getPointMarkerImage();
         if (pointMarkerImage != null) {
-            graphics.drawImage(TileUtils.scaleWidthHeight(pointMarkerImage, shapeStyle.getPointWidth(), shapeStyle.getPointHeight()), pxy[0], pxy[1], null);
+            graphics.drawImage(TileUtils.scaleWidthHeight(pointMarkerImage, shapeStyle.getWidth(), shapeStyle.getHeight()), pxy[0], pxy[1], null);
         } else {
             drawPointShape(shapeStyle, graphics, pxy);
         }
@@ -175,7 +163,7 @@ public class ShapeUtils {
     }
 
     private static void setBackgroundImage(Graphics2D graphics, ShapeStyle shapeStyle) {
-        BufferedImage backgroundImage = shapeStyle.getBackgroundImage();
+        BufferedImage backgroundImage = shapeStyle.getBgImage();
         if (backgroundImage != null) {
             TexturePaint texturePaint = new TexturePaint(backgroundImage, new Rectangle(0, 0, backgroundImage.getWidth(), backgroundImage.getHeight()));
             graphics.setPaint(texturePaint);
@@ -215,41 +203,93 @@ public class ShapeUtils {
     }
 
     private static void drawPointShape(ShapeStyle shapeStyle, Graphics2D graphics, int[] pxy) {
-        if (BooleanUtil.isTrue(shapeStyle.getPointDashed())) {
+        if (BooleanUtil.isTrue(shapeStyle.getIsDashed())) {
             //如果是
             Stroke dashed = new BasicStroke(2, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, shapeStyle.getPointDashPattern(), 0);
             graphics.setStroke(dashed);
         }
-        if (Objects.equals(shapeStyle.getShapeType(), 1)) {
+        if (Objects.equals(shapeStyle.getPointType(), 1)) {
             //正方形
-            graphics.drawRect(pxy[0], pxy[1], shapeStyle.getPointWidth(), shapeStyle.getPointHeight());
-            if (BooleanUtil.isTrue(shapeStyle.getPointFill())) {
-                graphics.fillRect(pxy[0], pxy[1], shapeStyle.getPointWidth(), shapeStyle.getPointHeight());
+            graphics.drawRect(pxy[0], pxy[1], shapeStyle.getWidth(), shapeStyle.getHeight());
+            if (BooleanUtil.isTrue(shapeStyle.getIsFill())) {
+                graphics.fillRect(pxy[0], pxy[1], shapeStyle.getWidth(), shapeStyle.getHeight());
             }
-        } else if (Objects.equals(shapeStyle.getShapeType(), 2)) {
+        } else if (Objects.equals(shapeStyle.getPointType(), 2)) {
             //三角形
-            int[] xPoints = {pxy[0], pxy[0] - shapeStyle.getPointHeight(), pxy[0] + shapeStyle.getPointHeight()};
-            int[] yPoints = {pxy[1] - shapeStyle.getPointHeight(), pxy[1] + shapeStyle.getPointHeight(), pxy[1] + shapeStyle.getPointHeight()};
+            int[] xPoints = {pxy[0], pxy[0] - shapeStyle.getHeight(), pxy[0] + shapeStyle.getHeight()};
+            int[] yPoints = {pxy[1] - shapeStyle.getHeight(), pxy[1] + shapeStyle.getHeight(), pxy[1] + shapeStyle.getHeight()};
             int nPoints = 3; // 顶点数量
             graphics.drawPolygon(xPoints, yPoints, nPoints);
-            if (BooleanUtil.isTrue(shapeStyle.getPointFill())) {
+            if (BooleanUtil.isTrue(shapeStyle.getIsFill())) {
                 graphics.fillPolygon(xPoints, yPoints, nPoints);
             }
-        } else if (Objects.equals(shapeStyle.getShapeType(), 3)) {
+        } else if (Objects.equals(shapeStyle.getPointType(), 3)) {
             //圆形
-            graphics.drawOval(pxy[0], pxy[1], shapeStyle.getPointWidth(), shapeStyle.getPointHeight());
-            if (BooleanUtil.isTrue(shapeStyle.getPointFill())) {
-                graphics.fillOval(pxy[0], pxy[1], shapeStyle.getPointWidth(), shapeStyle.getPointHeight());
+            graphics.drawOval(pxy[0], pxy[1], shapeStyle.getWidth(), shapeStyle.getHeight());
+            if (BooleanUtil.isTrue(shapeStyle.getIsFill())) {
+                graphics.fillOval(pxy[0], pxy[1], shapeStyle.getWidth(), shapeStyle.getHeight());
             }
         } else {
             //画一个简单的点
-            graphics.drawArc(pxy[0], pxy[1], shapeStyle.getPointWidth(), shapeStyle.getPointHeight(), 0, 360);
+            graphics.drawArc(pxy[0], pxy[1], shapeStyle.getWidth(), shapeStyle.getHeight(), 0, 360);
             //是否填充
-            if (BooleanUtil.isTrue(shapeStyle.getPointFill())) {
-                graphics.fillArc(pxy[0], pxy[1], shapeStyle.getPointWidth(), shapeStyle.getPointHeight(), 0, 360);
+            if (BooleanUtil.isTrue(shapeStyle.getIsFill())) {
+                graphics.fillArc(pxy[0], pxy[1], shapeStyle.getWidth(), shapeStyle.getHeight(), 0, 360);
             }
         }
     }
 
+    public static List<POI> detectClick(String bboxStr, List<POI> dataList, ShapeStyle shapeStyle, int x, int y) {
+        List<POI> clickSelectedDataList = new CopyOnWriteArrayList<>();
+//        renderAndDetectClick(image, bboxStr, dataList, shapeStyle, x, y, clickSelectedDataList, true);
+        String[] split = bboxStr.split(",");
+        double[] bbox = new double[split.length];
+        for (int i = 0; i < split.length; i++) {
+            bbox[i] = Double.parseDouble(split[i]);
+        }
+        dataList.parallelStream().forEach(poi -> {
+            BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_ARGB);
+            Graphics2D graphics = image.createGraphics();
+            Geometry shape = GeoUtils.getGeoUtils().createGeometry(poi.getShape());
+//            //判断数据点线面
+            if (StringUtils.equals(shape.getGeometryType(), "Polygon")) {
+                drawPolygonShape(bbox, graphics, shape, poi, shapeStyle);
+            } else if (StringUtils.equalsAny(shape.getGeometryType(), "LinearRing", "LineString", "MultiLineString")) {
+                drawLineShape(bbox, graphics, shape, shapeStyle);
+            } else if (StringUtils.equals(shape.getGeometryType(), "Point")) {
+                drawPointShape(bbox, graphics, shape, poi, shapeStyle);
+            }
+            //如果选中
+            int rgb = image.getRGB(x, y);
+            System.out.println("rgb---->" + image.getRGB(x, y));
+            int alpha = (rgb >> 24) & 0xff; // 提取alpha值
+//                System.out.println("RGB->"+alpha);
+            if (alpha > 0) {
+                // 像素被填充
+                clickSelectedDataList.add(poi);
+            }
+        });
+        return clickSelectedDataList;
+    }
+
+    public static void renderAndDetectClick(BufferedImage image, String bboxStr, List<POI> dataList, ShapeStyle shapeStyle) {
+        String[] split = bboxStr.split(",");
+        double[] bbox = new double[split.length];
+        for (int i = 0; i < split.length; i++) {
+            bbox[i] = Double.parseDouble(split[i]);
+        }
+        Graphics2D graphics = image.createGraphics();
+        dataList.parallelStream().forEach(poi -> {
+            Geometry shape = GeoUtils.getGeoUtils().createGeometry(poi.getShape());
+//            //判断数据点线面
+            if (StringUtils.equals(shape.getGeometryType(), "Polygon")) {
+                drawPolygonShape(bbox, graphics, shape, poi, shapeStyle);
+            } else if (StringUtils.equalsAny(shape.getGeometryType(), "LinearRing", "LineString", "MultiLineString")) {
+                drawLineShape(bbox, graphics, shape, shapeStyle);
+            } else if (StringUtils.equals(shape.getGeometryType(), "Point")) {
+                drawPointShape(bbox, graphics, shape, poi, shapeStyle);
+            }
+        });
+    }
 
 }

BIN
tile-service/src/main/resources/images/gis-layout-tools_example-aj.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-axcbypyj.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-bg.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-czw.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-fzs.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-galsb.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-ggcsfxyf.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-hajc.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-hcz.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-jgzzmgs.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-jq.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-jsj.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-lg.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-lgsjkyfl.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-lgszyjkscsb.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-mylsb.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-qyfxfk.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-shlsb.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-shzlfxfk.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-wgy.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-wxcl.png


BIN
tile-service/src/main/resources/images/gis-layout-tools_example-xfjy.png


+ 6 - 9
tile-web/src/main/resources/application-test.properties

@@ -1,18 +1,15 @@
-##### 数据库配置
-geo.ds.ip=172.16.67.23
-geo.ds.port=7306
+geo.ds.ip=8.140.240.182
+geo.ds.port=18080
 geo.ds.username=root
-geo.ds.password=Ucsp123#
+geo.ds.password=Taiji@2023#data
 geo.ds.base=geo
 geo.ds.dbtype = mysql
 
 
-
-##### 企业信息数据源数据库配置
-ent.ds.ip=172.16.67.23
-ent.ds.port=7306
+ent.ds.ip=8.140.240.182
+ent.ds.port=18080
 ent.ds.username=root
-ent.ds.password=Ucsp123#
+ent.ds.password=Taiji@2023#data
 ent.ds.basename=geo
 ent.ds.enterprise=lgsqy
 ent.ds.device=stg_view_deviceinfo_df