From d20acf36998840a29211007cb9c759fba51c3f59 Mon Sep 17 00:00:00 2001 From: zhangyuan Date: Mon, 12 Dec 2022 16:35:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/elink/esua/epdc/dto/GEOPolygon.java | 15 --- .../com/elink/esua/epdc/dto/LocalDTO.java | 25 ---- .../esua/epdc/dto/{Poly.java => PolyDTO.java} | 9 +- .../com/elink/esua/epdc/dto/PolygonsDTO.java | 16 --- .../com/elink/esua/epdc/dto/SiteArea.java | 14 --- .../item/controller/ItemController.java | 107 ++++-------------- 6 files changed, 29 insertions(+), 157 deletions(-) delete mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/GEOPolygon.java delete mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/LocalDTO.java rename esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/{Poly.java => PolyDTO.java} (79%) delete mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/PolygonsDTO.java delete mode 100644 esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/SiteArea.java diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/GEOPolygon.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/GEOPolygon.java deleted file mode 100644 index d19b49925..000000000 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/GEOPolygon.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.elink.esua.epdc.dto; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -@NoArgsConstructor -@Data -public class GEOPolygon { - @JsonProperty("polygons") - private PolygonsDTO polygons; - -} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/LocalDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/LocalDTO.java deleted file mode 100644 index 02e9d9010..000000000 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/LocalDTO.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.elink.esua.epdc.dto; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -@NoArgsConstructor -@Data -public class LocalDTO { - @JsonProperty("name") - private String name; - @JsonProperty("loc") - private LocDTO loc; - - @NoArgsConstructor - @Data - public static class LocDTO { - @JsonProperty("type") - private String type; - @JsonProperty("coordinates") - private List>> coordinates; - } -} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/Poly.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/PolyDTO.java similarity index 79% rename from esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/Poly.java rename to esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/PolyDTO.java index 9184881a8..f438c634e 100644 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/Poly.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/PolyDTO.java @@ -7,9 +7,16 @@ import org.springframework.data.mongodb.core.geo.GeoJsonPolygon; import org.springframework.data.mongodb.core.index.GeoSpatialIndexType; import org.springframework.data.mongodb.core.index.GeoSpatialIndexed; +/** + * @author zhy + * @date 2022/12/12 16:30 + */ @NoArgsConstructor @Data -public class Poly { +public class PolyDTO { + /** + * mongodb中search的名称就是这个 + */ @JsonProperty("polygons") @GeoSpatialIndexed(type = GeoSpatialIndexType.GEO_2DSPHERE) private GeoJsonPolygon polygons; diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/PolygonsDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/PolygonsDTO.java deleted file mode 100644 index d7dc8c781..000000000 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/PolygonsDTO.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.elink.esua.epdc.dto; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.List; - -@NoArgsConstructor -@Data -public class PolygonsDTO { - @JsonProperty("type") - private String type; - @JsonProperty("coordinates") - private List>> coordinates; -} diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/SiteArea.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/SiteArea.java deleted file mode 100644 index d2c844119..000000000 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/SiteArea.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.elink.esua.epdc.dto; - -import lombok.Data; -import org.springframework.data.mongodb.core.geo.GeoJsonPolygon; -import org.springframework.data.mongodb.core.index.GeoSpatialIndexType; -import org.springframework.data.mongodb.core.index.GeoSpatialIndexed; - -@Data -public class SiteArea { - @GeoSpatialIndexed(type = GeoSpatialIndexType.GEO_2DSPHERE) - private GeoJsonPolygon geoJsonPolygon; - -} - diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java index c133d6762..dc514089c 100755 --- a/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java +++ b/esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/item/controller/ItemController.java @@ -17,7 +17,6 @@ package com.elink.esua.epdc.modules.item.controller; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.elink.esua.epdc.commons.tools.annotation.MaskResponse; import com.elink.esua.epdc.commons.tools.page.PageData; @@ -28,10 +27,7 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; -import com.elink.esua.epdc.dto.GEOPolygon; -import com.elink.esua.epdc.dto.LocalDTO; -import com.elink.esua.epdc.dto.Poly; -import com.elink.esua.epdc.dto.PolygonsDTO; +import com.elink.esua.epdc.dto.PolyDTO; import com.elink.esua.epdc.dto.events.EpdcEventsCommentsDTO; import com.elink.esua.epdc.dto.events.form.EventDeleteCommentsFormDTO; import com.elink.esua.epdc.dto.form.KpiMetaDataOfEventsFormDTO; @@ -47,10 +43,7 @@ import com.elink.esua.epdc.modules.item.excel.StayItemExcel; import com.elink.esua.epdc.modules.item.redis.ItemAutoProcessRedis; import com.elink.esua.epdc.modules.item.service.ItemService; import com.elink.esua.epdc.modules.item.service.ItemTimeoutService; -import com.mongodb.client.model.geojson.MultiPolygon; -import com.mongodb.client.model.geojson.Polygon; import lombok.extern.slf4j.Slf4j; -import net.coobird.thumbnailator.geometry.Coordinate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.core.MongoTemplate; @@ -102,79 +95,19 @@ public class ItemController { return new Result>().ok(page); } - @GetMapping("test/test") - public List test() { - - -// mongoTemplate.save(loc); -// String[] polygonPointArr=new String[]{"113.314882, 23.163055","113.355845, 23.167042","113.370289, 23.149564","113.356779, 23.129758","113.338238, 23.13913","113.330979, 23.124706","113.313588, 23.140858","113.323865, 23.158204","113.314882, 23.163055"}; - - LocalDTO.LocDTO test2 =test2(); - - String jsonObject = JSON.toJSONString(test2); - Query query = new Query(); - PolygonsDTO geoPolygon = JSONObject.parseObject(jsonObject, PolygonsDTO.class); - List points = new ArrayList<>(); - List>> coordinates = geoPolygon.getCoordinates(); - List> coordinate = coordinates.get(0); - for (List doubles : coordinate) { - Point point = new Point(doubles.get(0), doubles.get(1)); - points.add(point); - } - GeoJsonPolygon geoJsonPolygon = new GeoJsonPolygon(points); - query.addCriteria(Criteria.where("loc").intersects(geoJsonPolygon)); - List list = mongoTemplate.find(query, JSONObject.class, "polygonCol"); - return list; - - } - - private LocalDTO.LocDTO test2 (){ - // 保存对象到mongodb - LocalDTO loc = new LocalDTO(); - - loc.setName("1123123"); - LocalDTO.LocDTO locDTO = new LocalDTO.LocDTO(); - locDTO.setType("Polygon"); - - List>> a = new ArrayList<>(); - List> b = new ArrayList<>(); - List c = new ArrayList<>(); - c.add(2); - c.add(2); - List d = new ArrayList<>(); - d.add(2); - d.add(4); - List e = new ArrayList<>(); - e.add(5); - e.add(1); - List f = new ArrayList<>(); - f.add(2); - f.add(2); - b.add(c); - b.add(d); - b.add(e); - b.add(f); - a.add(b); - locDTO.setCoordinates(a); - - - loc.setLoc(locDTO); - return locDTO; - } - - @GetMapping("test/test4") - public List test4() { - Poly poly =new Poly(); + @GetMapping("test/init") + public List testInit() { + PolyDTO polyDTO = new PolyDTO(); List points = new ArrayList<>(); - Point a1 = new Point(113.314882,23.163055); - Point a2 = new Point(113.355845,23.167042); + Point a1 = new Point(113.314882, 23.163055); + Point a2 = new Point(113.355845, 23.167042); Point a3 = new Point(113.370289, 23.149564); - Point a4 = new Point(113.356779,23.129758); - Point a5 = new Point(113.338238,23.13913); - Point a6 = new Point(113.330979,23.124706); - Point a7 = new Point(113.313588,23.140858); - Point a8 = new Point(113.323865,23.158204); - Point a9 = new Point(113.314882,23.163055); + Point a4 = new Point(113.356779, 23.129758); + Point a5 = new Point(113.338238, 23.13913); + Point a6 = new Point(113.330979, 23.124706); + Point a7 = new Point(113.313588, 23.140858); + Point a8 = new Point(113.323865, 23.158204); + Point a9 = new Point(113.314882, 23.163055); points.add(a1); points.add(a2); points.add(a3); @@ -186,19 +119,21 @@ public class ItemController { points.add(a9); GeoJsonPolygon geoJsonPolygon = new GeoJsonPolygon(points); - poly.setPolygons(geoJsonPolygon); - mongoTemplate.save(poly,"polygons"); + polyDTO.setPolygons(geoJsonPolygon); + mongoTemplate.save(polyDTO, "polygons"); - List dbList = mongoTemplate.findAll(Poly.class,"polygons"); + List dbList = mongoTemplate.findAll(PolyDTO.class, "polygons"); return dbList; } - @GetMapping("test/test3") - public List test3() { - Query query = new Query(Criteria.where("coordinates"). + @GetMapping("test/find") + public List testFind() { + Query query = new Query(Criteria.where("polygons"). intersects(new GeoJsonPoint(113.330908, 23.155678))); - List dbList = mongoTemplate.find(query, Poly.class,"polygons"); + List dbList = mongoTemplate.find(query, PolyDTO.class, "polygons"); + // 一般来说size为1 + System.out.println("该坐标所处的区域数量为:" + dbList.size()); return dbList; }