From 4842fb12fcb26c714768dab0e47d7e9012ffa87e Mon Sep 17 00:00:00 2001 From: suerprisePlus <15810472099@163.com> Date: 星期五, 27 九月 2024 09:56:45 +0800 Subject: [PATCH] 当问到库中不存在的数据时,直接卡死,如问题:查看台湾花莲机场之间的关系、战场环境总结报告 --- src/main/java/com/yb/service/XzService.java | 70 ++++++++++++++++------------------ 1 files changed, 33 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/yb/service/XzService.java b/src/main/java/com/yb/service/XzService.java index d2b0313..6b8b6a2 100644 --- a/src/main/java/com/yb/service/XzService.java +++ b/src/main/java/com/yb/service/XzService.java @@ -24,6 +24,7 @@ import org.locationtech.proj4j.CoordinateTransform; import org.locationtech.proj4j.CoordinateTransformFactory; import org.locationtech.proj4j.ProjCoordinate; + import java.util.HashMap; @Service @@ -37,25 +38,10 @@ // 鍏抽敭瀛楁煡璇� public String getQueryFiled(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception { - String query = ""; + String valSql = " like '%" + place + "%'"; - String key = getPublickey(); - if (filed.indexOf(",") > -1) { - String[] fileds = filed.split(","); - for (int i = 0; i < fileds.length; i++) { - String name = fileds[i]; - if (i > 0) { - query += " or "; - } - query += name + valSql; - } - } else { - query += filed + valSql; - } - query += ""; - System.out.println("rec getQueryFiled:" + query); - String encrypt = RsaHelper.encrypt(key, query); - HashMap formData = getHashMap(layerId, dbId, "1", "0", encrypt, null); + String querySQL = getQuerySql(valSql, filed); + HashMap formData = getHashMap(layerId, dbId, "1", "0", querySQL, null); String jsonString = entityHttpUtil.getPostMessage(queryEntity, formData); System.out.println("rec getQueryFiled:" + jsonString); JSONObject jsonObject = JSON.parseObject(jsonString); @@ -67,26 +53,33 @@ return ""; } - // 鍏抽敭瀛楁煡璇� - public String getQueryEntity(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception { - String query = ""; - String valSql = " like '%" + place + "%'"; + private String getQuerySql(String valSql, String filed) throws Exception { String key = getPublickey(); + String querySQL = ""; if (filed.indexOf(",") > -1) { String[] fileds = filed.split(","); for (int i = 0; i < fileds.length; i++) { String name = fileds[i]; if (i > 0) { - query += " or "; + querySQL += ";"; } - query += name + valSql; + String Sql = name + valSql + ""; + querySQL += RsaHelper.encrypt(key, Sql); } } else { - query += filed + valSql; + String Sql = filed + valSql + ""; + querySQL = RsaHelper.encrypt(key, Sql); } - query += ""; - String encrypt = RsaHelper.encrypt(key, query); - HashMap formData = getHashMap(layerId, dbId, "1", "100", encrypt, null); + return querySQL; + + } + + + // 鍏抽敭瀛楁煡璇� + public String getQueryEntity(String place, String filed, String layerId, String dbId, String queryEntity) throws Exception { + String valSql = " like '%" + place + "%'"; + String querySQL = getQuerySql(valSql, filed); + HashMap formData = getHashMap(layerId, dbId, "1", "100", querySQL, null); formData.put("querytype", "entity"); String jsonString1 = entityHttpUtil.getPostMessage(queryEntity, formData); System.out.println("rec getQueryFiled:" + jsonString1); @@ -104,9 +97,12 @@ // 鑼冨洿鏌ヨ public String getQueryAround(String type, String wkt, String filed, String layerId, String dbid, String entity) throws Exception { String query = filed + " like '%" + type + "%'" + ""; + if (type.contains("鍏ㄩ儴鐩爣")) { + query = filed + " like '%鐩爣%'" + ""; + } String encrypt = RsaHelper.encrypt(getPublickey(), query); HashMap formData = getHashMap(layerId, dbid, "1", "0", encrypt, wkt); - formData.put("querytype","entity"); + formData.put("querytype", "entity"); String jsonString = entityHttpUtil.getPostMessage(entity, formData); JSONObject jsonObject = JSON.parseObject(jsonString); JSONObject dataObj = jsonObject.getJSONObject("data"); @@ -170,7 +166,6 @@ } - //鐢熸垚WKT public String getWKt(double lon, double lat, int radius) throws Exception { // 鍒涘缓涓�涓潗鏍囩偣 @@ -182,9 +177,9 @@ // 鍒涘缓BufferOp瀹炰緥锛岀敤浜庣敓鎴愮紦鍐插尯 BufferOp bufferOp = new BufferOp(point); int dis = 500; -// if (radius != 0) { -// dis = radius; -// } + if (radius != 0) { + dis = radius; + } // 璁剧疆缂撳啿鍖鸿窛绂讳负500绫� Geometry bufferedGeometry = bufferOp.getResultGeometry(dis / 111319.9); // 鍒涘缓WKTWriter瀹炰緥锛岀敤浜庡皢Geometry杞崲涓篧KT鏍煎紡 @@ -226,15 +221,16 @@ CoordinateTransform transform = ctFactory.createTransform(src, dest); // 瀹氫箟涓�涓簮鍧愭爣鐐癸紙缁忓害锛岀含搴︼級 - ProjCoordinate srcgetMin = new ProjCoordinate( envelope.getMinX(), envelope.getMinY()); // 渚嬪锛氬寳浜殑缁忕含搴� - ProjCoordinate srcgetMax = new ProjCoordinate( envelope.getMaxX(), envelope.getMaxY()); // 渚嬪锛氬寳浜殑缁忕含搴� + ProjCoordinate srcgetMin = new ProjCoordinate(envelope.getMinX(), envelope.getMinY(), 0); // 渚嬪锛氬寳浜殑缁忕含搴� + ProjCoordinate srcgetMax = new ProjCoordinate(envelope.getMaxX(), envelope.getMaxY(), 0); // 渚嬪锛氬寳浜殑缁忕含搴� // 鎵ц杞崲 ProjCoordinate destgetMin = new ProjCoordinate(); ProjCoordinate destgetMax = new ProjCoordinate(); + System.out.println("杞崲鍚庣殑鍧愭爣锛歑 = " + srcgetMin); transform.transform(srcgetMin, destgetMin); transform.transform(srcgetMax, destgetMax); - String wkt =destgetMin.x+","+destgetMin.y+","+destgetMax.x+","+destgetMax.y; - System.out.println("杞崲鍚庣殑鍧愭爣锛歑 = " +wkt); + String wkt = destgetMin.x + "," + destgetMin.y + "," + destgetMax.x + "," + destgetMax.y; + System.out.println("杞崲鍚庣殑鍧愭爣锛歑 = " + wkt); return wkt; } -- Gitblit v1.9.3