From 3f50254c68361dfc54f0f6e07df7a0b44ef203c8 Mon Sep 17 00:00:00 2001 From: 张洋洋 <10611411+yang-yang-z@user.noreply.gitee.com> Date: 星期三, 12 二月 2025 13:55:41 +0800 Subject: [PATCH] [add]根据坐标提取管线管点 --- src/main/java/com/se/simu/controller/SimuController.java | 235 ++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 168 insertions(+), 67 deletions(-) diff --git a/src/main/java/com/se/simu/controller/SimuController.java b/src/main/java/com/se/simu/controller/SimuController.java index 891f0b1..31b3435 100644 --- a/src/main/java/com/se/simu/controller/SimuController.java +++ b/src/main/java/com/se/simu/controller/SimuController.java @@ -416,25 +416,53 @@ return success(filePatn + "raingage.sem"); } - @ApiOperation(value = "绠$偣杞琧ityjson") - @GetMapping(value = "/pointToCityJson", produces = "application/json; charset=UTF-8") - public R<String> pointToCityJson(@RequestParam("shpPath") String shpPath) throws Exception { + @ApiOperation(value = "绠$偣杞瑂em") + @PostMapping(value = "/pointTosem", produces = "application/json; charset=UTF-8") + public R<String> pointTosem(@RequestBody List<GridDto> dtos) throws Exception { String path = outPath + "\\point\\"; - List<Map<String, Object>> list = ShpReadUtils.readPointShp(shpPath); + String publicKey = EntityLibraryUtils.getPublicKey(); + String token = EntityLibraryUtils.login(); + JSONArray jsonArrayList = EntityLibraryUtils.getPointInfo(dtos, token); JSONObject jsonObject = getModule("pointmodule.json"); - for (Map<String, Object> map : list - ) { + for (int s = 0; s < jsonArrayList.size(); s++) { + JSONObject pointObject = jsonArrayList.getJSONObject(s); //鎷艰鍧愭爣 JSONArray vertice = new JSONArray(); - vertice.add(map.get("lon")); - vertice.add(map.get("lat")); + vertice.add(Double.valueOf(pointObject.getString("lon"))); + vertice.add(Double.valueOf(pointObject.getString("lat"))); vertice.add(0.0); jsonObject.getJSONArray("vertices").add(vertice); //鎷艰鍩虹淇℃伅 JSONObject cityObject = new JSONObject(); cityObject.put("type", "+PipePoint"); JSONObject attribute = new JSONObject(); - attribute.put("name", map.get("fsw")); + attribute.put("缁存姢鏃堕棿", pointObject.get("operatetime")); + attribute.put("缁存姢浜�", pointObject.get("operator")); + attribute.put("鍞竴缂栫爜", pointObject.get("seid")); + attribute.put("ID", pointObject.get("id")); + attribute.put("enti_uuid", pointObject.get("enti_uuid")); + attribute.put("鏍囪瘑鐮�", pointObject.get("bsm")); + attribute.put("绠$嚎绉嶇被", pointObject.get("gxzl")); + attribute.put("鍦伴潰楂樼▼", pointObject.get("dmgc")); + attribute.put("鐗瑰緛", pointObject.get("tz")); + attribute.put("闄勫睘鐗�", pointObject.get("fsw")); + attribute.put("寤虹瓚鐗�", pointObject.get("jzw")); + attribute.put("浜曞簳楂樼▼", pointObject.get("jdgc")); + attribute.put("浜曞簳鍩嬫繁", pointObject.get("jdms")); + attribute.put("浜曡剸鍩嬫繁", pointObject.get("jbms")); + attribute.put("浜曠洊褰㈢姸", pointObject.get("jgxz")); + attribute.put("浜曠洊灏哄", pointObject.get("jgcc")); + attribute.put("浜曠洊鏉愯川", pointObject.get("jgcz")); + attribute.put("浜曠洊鐘舵��", pointObject.get("jgzt")); + attribute.put("浜曡剸鏉愯川", pointObject.get("jbcz")); + attribute.put("浜曡剸灏哄", pointObject.get("jbcc")); + attribute.put("浜曟潗璐�", pointObject.get("jcz")); + attribute.put("浜曞昂瀵�", pointObject.get("jcc")); + attribute.put("浣跨敤鐘跺喌", pointObject.get("syzk")); + attribute.put("lon", Double.valueOf(pointObject.getString("lon"))); + attribute.put("lat", Double.valueOf(pointObject.getString("lat"))); + attribute.put("atti", pointObject.get("atti")); + attribute.put("闆ㄦ按闆嗙粨鐐�", pointObject.get("ysjjd")); cityObject.put("attributes", attribute); JSONArray geometry = new JSONArray(); JSONObject metry = new JSONObject(); @@ -464,12 +492,62 @@ SemUtils.cityJsonToSem(pointPath, filePatn + "node.sem"); return success(filePatn + "node.sem"); } +// @ApiOperation(value = "绠$偣杞琧ityjson") +// @GetMapping(value = "/pointToCityJson", produces = "application/json; charset=UTF-8") +// public R<String> pointToCityJson(@RequestParam("shpPath") String shpPath) throws Exception { +// String path = outPath + "\\point\\"; +// List<Map<String, Object>> list = ShpReadUtils.readPointShp(shpPath); +// JSONObject jsonObject = getModule("pointmodule.json"); +// for (Map<String, Object> map : list +// ) { +// //鎷艰鍧愭爣 +// JSONArray vertice = new JSONArray(); +// vertice.add(map.get("lon")); +// vertice.add(map.get("lat")); +// vertice.add(0.0); +// jsonObject.getJSONArray("vertices").add(vertice); +// //鎷艰鍩虹淇℃伅 +// JSONObject cityObject = new JSONObject(); +// cityObject.put("type", "+PipePoint"); +// JSONObject attribute = new JSONObject(); +// attribute.put("name", map.get("fsw")); +// cityObject.put("attributes", attribute); +// JSONArray geometry = new JSONArray(); +// JSONObject metry = new JSONObject(); +// metry.put("type", "MultiPoint"); +// metry.put("lod", 0); +// JSONArray boundarie = new JSONArray(); +// boundarie.add(jsonObject.getJSONArray("vertices").size() - 1); +// metry.put("boundaries", boundarie); +// geometry.add(metry); +// cityObject.put("geometry", geometry); +// jsonObject.getJSONObject("CityObjects").put("UUID_" + UUID.randomUUID().toString(), cityObject); +// } +// long times = System.currentTimeMillis(); +// String pointPath = path + times + "\\绠$偣.json"; +// File dirFile = new File(path + times); +// if (!dirFile.exists()) { +// dirFile.mkdirs(); +// } +// FileWriter fileWriter = new FileWriter(pointPath); +// fileWriter.write(jsonObject.toJSONString()); +// fileWriter.close(); +// String filePatn = inPath + "\\tongzhou\\"; +// File file = new File(filePatn); +// if (!file.exists()) { +// file.mkdirs(); +// } +// SemUtils.cityJsonToSem(pointPath, filePatn + "node.sem"); +// return success(filePatn + "node.sem"); +// } @ApiOperation(value = "绠$嚎sem鐢熸垚") @PostMapping(value = "/lineToSem", produces = "application/json; charset=UTF-8") public R<String> lineToSem(@RequestBody List<GridDto> dtos) throws Exception { String path = outPath + "\\line\\"; - JSONArray jsonArrayList = EntityLibraryUtils.getPointInfo(dtos); + String publicKey = EntityLibraryUtils.getPublicKey(); + String token = EntityLibraryUtils.login(); + JSONArray jsonArrayList = EntityLibraryUtils.getLineInfo(dtos, token); if (jsonArrayList.size() == 0) { return fail("璇ュ尯鍩熶笉瀛樺湪绠$嚎锛�"); } @@ -480,7 +558,6 @@ } String sql = stringBuffer.toString(); sql = sql.substring(0, sql.length() - 1) + ")"; - String publicKey = EntityLibraryUtils.getPublicKey(); StringBuffer paramBuffer = new StringBuffer(""); while (!"".equals(sql)) { if (sql.length() > 110) { @@ -492,10 +569,86 @@ sql = ""; } } - String src=paramBuffer.toString().substring(0, paramBuffer.length() - 1); - JSONArray arrayDetail = EntityLibraryUtils.getPointDetail(src); - //todo 鏇挎崲mapencodedString - List<Map<String, Object>> list = new ArrayList<>(); + String src = paramBuffer.toString().substring(0, paramBuffer.length() - 1); + JSONArray arrayDetail = EntityLibraryUtils.getLineDetail(src, token); + JSONObject jsonObject = getModule("linemodule.json"); + for (int i = 0; i < arrayDetail.size(); i++) { + JSONObject detailJSONObject = arrayDetail.getJSONObject(i); + //鎷艰鍩虹淇℃伅 + JSONObject cityObject = new JSONObject(); + cityObject.put("type", "+PipeLine"); + JSONObject attribute = new JSONObject(); + attribute.put("缁存姢鏃堕棿", detailJSONObject.getJSONObject("properties").getLong("operatetime")); + attribute.put("缁存姢浜�", detailJSONObject.getJSONObject("properties").getString("operator")); + attribute.put("鍞竴缂栫爜", detailJSONObject.getJSONObject("properties").get("seid")); + attribute.put("ENTI_UUID", detailJSONObject.getJSONObject("properties").get("enti_uuid")); + attribute.put("ID", detailJSONObject.getJSONObject("properties").get("id")); + attribute.put("lon", detailJSONObject.getJSONObject("properties").get("lon")); + attribute.put("lat", detailJSONObject.getJSONObject("properties").get("lat")); + attribute.put("atti", detailJSONObject.getJSONObject("properties").get("atti")); + attribute.put("绠$嚎绉嶇被", detailJSONObject.getJSONObject("properties").get("gxzl")); + attribute.put("璧风偣鏍囪瘑鐮�", detailJSONObject.getJSONObject("properties").get("qdbsm")); + attribute.put("姝㈢偣鏍囪瘑鐮�", detailJSONObject.getJSONObject("properties").get("zdbsm")); + attribute.put("璧风偣楂樼▼", detailJSONObject.getJSONObject("properties").get("qdgc")); + attribute.put("璧烽珮绋嬬被鍨�", detailJSONObject.getJSONObject("properties").get("qgclx")); + attribute.put("璧风偣鍩嬫繁", detailJSONObject.getJSONObject("properties").get("qdms")); + attribute.put("姝㈢偣楂樼▼", detailJSONObject.getJSONObject("properties").get("zdgc")); + attribute.put("姝㈤珮绋嬬被鍨�", detailJSONObject.getJSONObject("properties").get("zgclx")); + attribute.put("姝㈢偣鍩嬫繁", detailJSONObject.getJSONObject("properties").get("zdms")); + attribute.put("鏉愯川", detailJSONObject.getJSONObject("properties").get("cz")); + attribute.put("鍩嬭鏂瑰紡", detailJSONObject.getJSONObject("properties").get("msfs")); + attribute.put("绠″緞1", detailJSONObject.getJSONObject("properties").get("gja")); + attribute.put("绠″緞2", detailJSONObject.getJSONObject("properties").get("gjb")); + attribute.put("浣跨敤鐘跺喌", detailJSONObject.getJSONObject("properties").get("syzk")); + attribute.put("绠$嚎娈甸暱搴�", detailJSONObject.getJSONObject("properties").get("gxdcd")); + attribute.put("groupID", detailJSONObject.getJSONObject("properties").get("groupid")); + attribute.put("Shape_Length", detailJSONObject.getJSONObject("properties").get("shape_length")); + attribute.put("鏍囪瘑鐮�", detailJSONObject.getJSONObject("properties").get("bsm")); + JSONArray geometry = new JSONArray(); + JSONObject metry = new JSONObject(); + metry.put("type", "MultiLineString"); + metry.put("lod", 0); + JSONArray boundarie = new JSONArray(); + JSONArray array = detailJSONObject.getJSONObject("geometry").getJSONArray("coordinates").getJSONArray(0); + for (int m = 0; m < array.size(); m++) { + JSONArray object = array.getJSONArray(m); + jsonObject.getJSONArray("vertices").add(ProjectionToGeographicUtil.getPoint(object.getDouble(0), object.getDouble(1))); + boundarie.add(jsonObject.getJSONArray("vertices").size() - 1); + } + JSONArray jsonArray = new JSONArray(); + jsonArray.add(boundarie); + metry.put("boundaries", jsonArray); + JSONArray metryArray = new JSONArray(); + metryArray.add(metry); + cityObject.put("geometry", metryArray); + cityObject.put("attributes", attribute); + cityObject.put("attributes", attribute); + geometry.add(metry); + jsonObject.getJSONObject("CityObjects").put("UUID_" + UUID.randomUUID().toString(), cityObject); + } + long times = System.currentTimeMillis(); + String pointPath = path + times + "\\绠$嚎.json"; + File dirFile = new File(path + times); + if (!dirFile.exists()) { + dirFile.mkdirs(); + } + FileWriter fileWriter = new FileWriter(pointPath); + fileWriter.write(jsonObject.toJSONString()); + fileWriter.close(); + String filePatn = inPath + "\\tongzhou\\"; + File file = new File(filePatn); + if (!file.exists()) { + file.mkdirs(); + } + SemUtils.cityJsonToSem(pointPath, filePatn + "link.sem"); + return success(filePatn + "link.sem"); + } + + @ApiOperation(value = "绠$嚎杞琧ityjson") + @GetMapping(value = "/lineToCityJson", produces = "application/json; charset=UTF-8") + public R<String> lineToCityJson(@RequestParam("shpPath") String shpPath) throws Exception { + String path = outPath + "\\line\\"; + List<Map<String, Object>> list = ShpReadUtils.readPointShp(shpPath); JSONObject jsonObject = getModule("linemodule.json"); for (Map<String, Object> map : list ) { @@ -543,58 +696,6 @@ SemUtils.cityJsonToSem(pointPath, filePatn + "link.sem"); return success(filePatn + "link.sem"); } -// @ApiOperation(value = "绠$嚎杞琧ityjson") -// @GetMapping(value = "/lineToCityJson", produces = "application/json; charset=UTF-8") -// public R<String> lineToCityJson(@RequestParam("shpPath") String shpPath) throws Exception { -// String path = outPath + "\\line\\"; -// List<Map<String, Object>> list = ShpReadUtils.readPointShp(shpPath); -// JSONObject jsonObject = getModule("linemodule.json"); -// for (Map<String, Object> map : list -// ) { -// //鎷艰鍩虹淇℃伅 -// JSONObject cityObject = new JSONObject(); -// cityObject.put("type", "+PipeLine"); -// JSONObject attribute = new JSONObject(); -// attribute.put("name", map.get("msfs")); -// JSONArray geometry = new JSONArray(); -// JSONObject metry = new JSONObject(); -// metry.put("type", "MultiLineString"); -// metry.put("lod", 0); -// JSONArray boundarie = new JSONArray(); -// JSONArray array = JSONObject.parseObject(map.get("the_geom").toString()).getJSONArray("coordinates"); -// for (int i = 0; i < array.size(); i++) { -// JSONObject object = JSONObject.parseObject(array.get(i).toString()); -// jsonObject.getJSONArray("vertices").add(ProjectionToGeographicUtil.getPoint(Double.valueOf(object.get("x").toString()), Double.valueOf(object.get("y").toString()))); -// boundarie.add(jsonObject.getJSONArray("vertices").size() - 1); -// } -// JSONArray jsonArray = new JSONArray(); -// jsonArray.add(boundarie); -// metry.put("boundaries", jsonArray); -// JSONArray metryArray = new JSONArray(); -// metryArray.add(metry); -// cityObject.put("geometry", metryArray); -// cityObject.put("attributes", attribute); -// cityObject.put("attributes", attribute); -// geometry.add(metry); -// jsonObject.getJSONObject("CityObjects").put("UUID_" + UUID.randomUUID().toString(), cityObject); -// } -// long times = System.currentTimeMillis(); -// String pointPath = path + times + "\\绠$嚎.json"; -// File dirFile = new File(path + times); -// if (!dirFile.exists()) { -// dirFile.mkdirs(); -// } -// FileWriter fileWriter = new FileWriter(pointPath); -// fileWriter.write(jsonObject.toJSONString()); -// fileWriter.close(); -// String filePatn = inPath + "\\tongzhou\\"; -// File file = new File(filePatn); -// if (!file.exists()) { -// file.mkdirs(); -// } -// SemUtils.cityJsonToSem(pointPath, filePatn+ "link.sem"); -// return success(filePatn + "link.sem"); -// } @ApiOperation(value = "鍦板舰杞琧ityjson") @GetMapping(value = "/terrainToCityJson", produces = "application/json; charset=UTF-8") -- Gitblit v1.9.3