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转换为WKT格式
@@ -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("转换后的坐标:X = " + srcgetMin);
        transform.transform(srcgetMin, destgetMin);
        transform.transform(srcgetMax, destgetMax);
        String wkt =destgetMin.x+","+destgetMin.y+","+destgetMax.x+","+destgetMax.y;
        System.out.println("转换后的坐标:X = " +wkt);
        String wkt = destgetMin.x + "," + destgetMin.y + "," + destgetMax.x + "," + destgetMax.y;
        System.out.println("转换后的坐标:X = " + wkt);
        return wkt;
    }