| | |
| | | import org.locationtech.proj4j.CoordinateTransform;
|
| | | import org.locationtech.proj4j.CoordinateTransformFactory;
|
| | | import org.locationtech.proj4j.ProjCoordinate;
|
| | |
|
| | | import java.util.HashMap;
|
| | |
|
| | | @Service
|
| | |
| | |
|
| | | // 关键字查询
|
| | | 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);
|
| | |
| | | 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);
|
| | |
| | | // 范围查询
|
| | | 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");
|
| | |
| | | }
|
| | |
|
| | |
|
| | |
|
| | | //生成WKT
|
| | | public String getWKt(double lon, double lat, int radius) throws Exception {
|
| | | // 创建一个坐标点
|
| | |
| | | // 创建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格式
|
| | |
| | | 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;
|
| | |
|
| | | }
|