| | |
| | | import com.se.simu.config.PropertiesConfig; |
| | | import com.se.simu.domain.dto.GeDb; |
| | | import com.se.simu.domain.dto.GeLayer; |
| | | import com.se.simu.domain.dto.GridDto; |
| | | import com.se.simu.domain.po.DataPo; |
| | | import com.se.simu.domain.po.SimuPo; |
| | | import com.se.simu.domain.vo.*; |
| | |
| | | metry.put("type", "MultiPoint"); |
| | | metry.put("lod", 0); |
| | | JSONArray boundarie = new JSONArray(); |
| | | boundarie.add(jsonObject.getJSONArray("vertices").size()-1); |
| | | boundarie.add(jsonObject.getJSONArray("vertices").size() - 1); |
| | | metry.put("boundaries", boundarie); |
| | | geometry.add(metry); |
| | | cityObject.put("geometry", geometry); |
| | |
| | | FileWriter fileWriter = new FileWriter(path + tableName + "\\降雨量.json"); |
| | | fileWriter.write(jsonObject.toJSONString()); |
| | | fileWriter.close(); |
| | | SemUtils.cityJsonToSem(path + tableName + "\\降雨量.json",path + tableName + "\\station_rain.sem"); |
| | | SemUtils.cityJsonToSem(path + tableName + "\\降雨量.json", path + tableName + "\\station_rain.sem"); |
| | | return success(path + tableName + "\\station_rain.sem"); |
| | | } |
| | | |
| | |
| | | metry.put("type", "MultiPoint"); |
| | | metry.put("lod", 0); |
| | | JSONArray boundarie = new JSONArray(); |
| | | boundarie.add(jsonObject.getJSONArray("vertices").size()-1); |
| | | boundarie.add(jsonObject.getJSONArray("vertices").size() - 1); |
| | | metry.put("boundaries", boundarie); |
| | | geometry.add(metry); |
| | | cityObject.put("geometry", geometry); |
| | |
| | | FileWriter fileWriter = new FileWriter(pointPath); |
| | | fileWriter.write(jsonObject.toJSONString()); |
| | | fileWriter.close(); |
| | | SemUtils.cityJsonToSem(pointPath,path + times + "\\point.sem"); |
| | | SemUtils.cityJsonToSem(pointPath, path + times + "\\point.sem"); |
| | | return success(path + times + "\\point.sem"); |
| | | } |
| | | |
| | |
| | | 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); |
| | | 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 jsonArray = new JSONArray(); |
| | | jsonArray.add(boundarie); |
| | | metry.put("boundaries", jsonArray); |
| | | JSONArray metryArray=new JSONArray(); |
| | | JSONArray metryArray = new JSONArray(); |
| | | metryArray.add(metry); |
| | | cityObject.put("geometry",metryArray); |
| | | cityObject.put("attributes",attribute); |
| | | cityObject.put("geometry", metryArray); |
| | | cityObject.put("attributes", attribute); |
| | | cityObject.put("attributes", attribute); |
| | | geometry.add(metry); |
| | | jsonObject.getJSONObject("CityObjects").put("UUID_" + UUID.randomUUID().toString(), cityObject); |
| | |
| | | SemUtils.cityJsonToSem(pointPath, path + times + "\\line.sem"); |
| | | return success(path + times + "\\line.sem"); |
| | | } |
| | | |
| | | @ApiOperation(value = "地形转cityjson") |
| | | @GetMapping(value = "/terrainToCityJson", produces = "application/json; charset=UTF-8") |
| | | public R<String> terrainToCityJson(@RequestParam("tifPath") String tifPath) throws Exception { |
| | | long times = System.currentTimeMillis(); |
| | | String path = outPath + "\\terrain\\"+times+"\\"; |
| | | File dirFile = new File(path+"appearance"); |
| | | String path = outPath + "\\terrain\\" + times + "\\"; |
| | | File dirFile = new File(path + "appearance"); |
| | | if (!dirFile.exists()) { |
| | | dirFile.mkdirs(); |
| | | } |
| | | String pngPath=path+"appearance\\terrain.png"; |
| | | TiffToRGBUtil.tifToPng(tifPath,pngPath); |
| | | String pngPath = path + "appearance\\terrain.png"; |
| | | TiffToRGBUtil.tifToPng(tifPath, pngPath); |
| | | JSONObject jsonObject = getModule("terrainmodule.json"); |
| | | jsonObject.put("vertices",TiffCoordinateExtractorUtil.getCoordinate(tifPath)); |
| | | jsonObject.put("vertices", TiffCoordinateExtractorUtil.getCoordinate(tifPath)); |
| | | FileWriter fileWriter = new FileWriter(path + "terrain.json"); |
| | | fileWriter.write(jsonObject.toJSONString()); |
| | | fileWriter.close(); |
| | | SemUtils.cityJsonToSem(path + "terrain.json", path + "terrain.sem"); |
| | | return success(path + "terrain.sem"); |
| | | } |
| | | |
| | | @ApiOperation(value = "grid转cityjson") |
| | | @PostMapping(value = "/gridToCityJson", produces = "application/json; charset=UTF-8") |
| | | public R<String> gridToCityJson(@RequestBody List<GridDto> dtos) throws Exception { |
| | | long times = System.currentTimeMillis(); |
| | | String path = outPath + "\\grid\\" + times + "\\"; |
| | | File dirFile = new File(path ); |
| | | if (!dirFile.exists()) { |
| | | dirFile.mkdirs(); |
| | | } |
| | | JSONObject jsonObject = getModule("grid.json"); |
| | | JSONArray array = jsonObject.getJSONArray("vertices"); |
| | | for (GridDto dto:dtos |
| | | ) { |
| | | JSONArray jsonArray=new JSONArray(); |
| | | jsonArray.add(dto.getLon()); |
| | | jsonArray.add(dto.getLat()); |
| | | jsonArray.add(0); |
| | | array.add(jsonArray); |
| | | } |
| | | jsonObject.put("vertices",array); |
| | | FileWriter fileWriter = new FileWriter(path + "grid.json"); |
| | | fileWriter.write(jsonObject.toJSONString()); |
| | | fileWriter.close(); |
| | | SemUtils.cityJsonToSem(path + "grid.json", path + "grid.sem"); |
| | | return success(path + "grid.sem"); |
| | | } |
| | | |
| | | public JSONObject getModule(String moduleName) { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | try { |