| | |
| | | package com.yb.controller; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.yb.config.R; |
| | | import com.yb.config.XzConfig; |
| | | import com.yb.entity.ReqEntity; |
| | | import com.yb.service.XzService; |
| | | import io.swagger.v3.oas.annotations.Operation; |
| | | import io.swagger.v3.oas.annotations.tags.Tag; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | |
| | | @Tag(name="新智接口") |
| | | |
| | | @Tag(name = "新智接口") |
| | | @RestController |
| | | @RequestMapping("/api/v1") |
| | | public class XzController { |
| | | @Autowired |
| | | WebSocketController webSocketController; |
| | | @Autowired |
| | | private XzService xzService; |
| | | @Autowired |
| | | private XzConfig xzConfig; |
| | | |
| | | @GetMapping("/poiMap/{place}") |
| | | @PostMapping("/poiMap") |
| | | @Operation(summary = "显示地点") |
| | | public R poiMap(@PathVariable("place")String place){ |
| | | System.out.println("rec message:"+place); |
| | | HashMap<String,Object> hash = new HashMap<>(); |
| | | hash.put("func","poiMap"); |
| | | public R poiMap(@RequestParam Map<String, String> allParams) throws Exception { |
| | | String place = allParams.get("place"); |
| | | String mid = allParams.get("mid"); |
| | | if (place == null || mid == null) { |
| | | return R.error("数据传递错误"); |
| | | } |
| | | HashMap<String, Object> hash = xzService.getFuncMap("poiMap", mid); |
| | | ReqEntity reqEntity = new ReqEntity(); |
| | | reqEntity.setPlace(place); |
| | | reqEntity.setX("120.9671"); |
| | | reqEntity.setY("13.5748"); |
| | | hash.put("poi",reqEntity); |
| | | |
| | | String filed = "enti_name"; |
| | | String item = xzService.getQueryFiled(place, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); |
| | | System.out.println("rec poiMap:" + reqEntity); |
| | | JSONObject obj = JSONObject.parseObject(item); |
| | | reqEntity.setX(obj.getString("lon")); |
| | | reqEntity.setY(obj.getString("lat")); |
| | | reqEntity.setPlace(obj.getString(filed)); |
| | | hash.put("poi", reqEntity); |
| | | String message = JSON.toJSONString(hash); |
| | | webSocketController.sendAllMessage(message); |
| | | |
| | | return R.ok(hash); |
| | | } |
| | | |
| | | @PostMapping("/aroundPoi") |
| | | @Operation(summary = "周边查询") |
| | | public R aroundPoi(@RequestBody ReqEntity reqEntity){ |
| | | System.out.println("rec message:"+reqEntity); |
| | | HashMap<String,Object> hash = new HashMap<>(); |
| | | hash.put("func","aroundPoi"); |
| | | List<ReqEntity> list = new ArrayList<>(); |
| | | reqEntity.setX("120.9671"); |
| | | reqEntity.setY("13.5748"); |
| | | list.add(reqEntity); |
| | | list.add(reqEntity); |
| | | hash.put("poi",list); |
| | | |
| | | @Operation(summary = "周边属性查询") |
| | | public R aroundPoi(@RequestParam Map<String, String> allParams) throws Exception { |
| | | String place = allParams.get("place"); |
| | | String mid = allParams.get("mid"); |
| | | String type = allParams.get("type"); |
| | | String dis = allParams.get("radius"); |
| | | int radius = 0; |
| | | if (dis != null) { |
| | | radius = Integer.parseInt(dis); |
| | | } |
| | | System.out.println("rec aroundPoi:" + place + " mid:" + mid + " type:" + type + " radius:" + radius); |
| | | if (type == null || place == null || mid == null) { |
| | | return R.error("数据传递错误"); |
| | | } |
| | | HashMap<String, Object> hash = xzService.getFuncMap("aroundPoi", mid); |
| | | String filed = "enti_name"; |
| | | String typeFiled = "sjnr"; |
| | | String item = xzService.getQueryFiled(place, filed, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); |
| | | JSONObject obj = JSONObject.parseObject(item); |
| | | Double lon = Double.parseDouble(obj.getString("lon")); |
| | | Double lat = Double.parseDouble(obj.getString("lat")); |
| | | String wkt = xzService.getWKt(lon, lat, radius); |
| | | String itemList = xzService.getQueryAround(type, wkt, typeFiled, xzConfig.layerId, xzConfig.dbid, xzConfig.queryEntity); |
| | | JSONArray dataArray = JSONArray.parseArray(itemList); |
| | | ArrayList<ReqEntity> arrayList = new ArrayList<>(); |
| | | for (int i = 0; i < dataArray.size(); i++) { |
| | | Object element = dataArray.get(i); |
| | | if (element instanceof JSONObject) { |
| | | JSONObject jsonObject = (JSONObject) element; |
| | | ReqEntity reqEntity = new ReqEntity(); |
| | | reqEntity.setX(jsonObject.getString("lon")); |
| | | reqEntity.setY(jsonObject.getString("lat")); |
| | | reqEntity.setPlace(jsonObject.getString(filed)); |
| | | arrayList.add(reqEntity); |
| | | } |
| | | } |
| | | System.out.println("rec aroundPoi:" + arrayList); |
| | | hash.put("poi", arrayList); |
| | | String message = JSON.toJSONString(hash); |
| | | webSocketController.sendAllMessage(message); |
| | | |
| | | return R.ok(hash); |
| | | } |
| | | |
| | | @GetMapping("/queryPath/{start_point}/{end_point}") |
| | | @Operation(summary = "路线查询") |
| | | public R queryPath(@PathVariable("start_point")String start_point,@PathVariable("end_point")String end_point){ |
| | | System.out.println("rec start_point: "+start_point+" end_point: "+end_point); |
| | | HashMap<String,Object> hash = new HashMap<>(); |
| | | hash.put("func","searchPath"); |
| | | List<ReqEntity> list = new ArrayList<>(); |
| | | |
| | | hash.put("path",list); |
| | | |
| | | String message = JSON.toJSONString(hash); |
| | | webSocketController.sendAllMessage(message); |
| | | |
| | | return R.ok(hash); |
| | | } |
| | | |
| | | @GetMapping("/queryMeta") |
| | | @PostMapping("/queryMeta") |
| | | @Operation(summary = "元信息查询") |
| | | public R queryMeta(){ |
| | | System.out.println("queryMeta "); |
| | | HashMap<String,Object> hash = new HashMap<>(); |
| | | hash.put("func","queryMeta"); |
| | | List<ReqEntity> list = new ArrayList<>(); |
| | | public R queryMeta(@RequestParam Map<String, String> allParams) { |
| | | String mid = allParams.get("mid"); |
| | | System.out.println("rec queryMeta:" + " mid:" + mid); |
| | | if (mid == null) { |
| | | return R.error("数据传递错误"); |
| | | } |
| | | HashMap<String, Object> hash = xzService.getFuncMap("queryMeta", mid); |
| | | // 统计查询接口拼接 |
| | | String filed = "sjnr"; |
| | | String filedString= xzService.getQueryMeta(xzConfig.layerId, xzConfig.dbid,filed,xzConfig.queryEntity); |
| | | System.out.println("rec queryMeta:" + filedString); |
| | | JSONObject jsonObject = JSON.parseObject(filedString); |
| | | JSONArray dataArray = jsonObject.getJSONArray("data"); |
| | | HashMap<String, Object> markMap = new HashMap<>(); |
| | | JSONArray markArray = new JSONArray(); |
| | | String markDown = "| 数据类型 | 数据量 |\\n|------|------|\\n"; |
| | | for (int i = 0; i < dataArray.size(); i++) { |
| | | JSONObject dataObj = dataArray.getJSONObject(i); |
| | | System.out.println("rec queryMeta:" + dataObj); |
| | | String[] filedValue = new String[2]; |
| | | |
| | | hash.put("meta",list); |
| | | for (String key : dataObj.keySet()) { |
| | | if (key == filed) { |
| | | filedValue[0] = dataObj.getString(key); |
| | | } else { |
| | | filedValue[1] = dataObj.getString(key); |
| | | } |
| | | } |
| | | markDown += "| " + filedValue[0] + " | " + filedValue[1] + " |\n"; |
| | | } |
| | | |
| | | markMap.put("markdown", markDown); |
| | | markArray.add(markMap); |
| | | hash.put("markdown", markArray); |
| | | hash.put("content", "地理实体数据库"); |
| | | System.out.println("rec queryMeta:" + hash); |
| | | String message = JSON.toJSONString(hash); |
| | | webSocketController.sendAllMessage(message); |
| | | |
| | | return R.ok(hash); |
| | | } |
| | | |
| | | |
| | | } |