|  | @@ -0,0 +1,57 @@
 | 
	
		
			
				|  |  | +package com.sysu.admin.controller.lz.air_route;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import com.sysu.admin.controller.lz.area.LzArea;
 | 
	
		
			
				|  |  | +import com.sysu.admin.controller.lz.area.LzAreaService;
 | 
	
		
			
				|  |  | +import com.sysu.admin.site.CommonVo;
 | 
	
		
			
				|  |  | +import com.sysu.admin.utils.shape.GeoCastUtil;
 | 
	
		
			
				|  |  | +import com.xiesx.fastboot.base.result.BaseResult;
 | 
	
		
			
				|  |  | +import com.xiesx.fastboot.base.result.R;
 | 
	
		
			
				|  |  | +import org.locationtech.jts.geom.Coordinate;
 | 
	
		
			
				|  |  | +import org.locationtech.jts.geom.MultiPolygon;
 | 
	
		
			
				|  |  | +import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | +import org.springframework.web.bind.annotation.RequestBody;
 | 
	
		
			
				|  |  | +import org.springframework.web.bind.annotation.RequestMapping;
 | 
	
		
			
				|  |  | +import org.springframework.web.bind.annotation.RestController;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import java.util.List;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +@RequestMapping("/site/lz_area")
 | 
	
		
			
				|  |  | +@RestController
 | 
	
		
			
				|  |  | +public class AirRouteController {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private LzAreaService lzAreaService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @RequestMapping("/list")
 | 
	
		
			
				|  |  | +    public BaseResult list(){
 | 
	
		
			
				|  |  | +        List<LzArea> list = lzAreaService.findAll();
 | 
	
		
			
				|  |  | +        list.forEach(lzArea -> {
 | 
	
		
			
				|  |  | +            lzArea.setWkt(GeoCastUtil.geomToWkt(lzArea.getGeom()));
 | 
	
		
			
				|  |  | +            lzArea.setPointWkt(GeoCastUtil.geomToWkt(lzArea.getPoint()));
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        return R.succ(list);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @RequestMapping("/air_route")
 | 
	
		
			
				|  |  | +    public BaseResult airRoute(@RequestBody CommonVo commonVo){
 | 
	
		
			
				|  |  | +        LzArea area = lzAreaService.findOne(commonVo.getId().intValue());
 | 
	
		
			
				|  |  | +        Coordinate[] coordinates  = area.getGeom().getCoordinates();
 | 
	
		
			
				|  |  | +        Double[][] res = new Double[coordinates.length - 1][];
 | 
	
		
			
				|  |  | +        for(int i=0; i < coordinates.length - 1; i++){
 | 
	
		
			
				|  |  | +            Double [] temp = new Double[2];
 | 
	
		
			
				|  |  | +            temp[0] = coordinates[i].getX();
 | 
	
		
			
				|  |  | +            temp[1] = coordinates[i].getY();
 | 
	
		
			
				|  |  | +            res[i] = temp;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return R.succ(res);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @RequestMapping("/save")
 | 
	
		
			
				|  |  | +    public BaseResult save(@RequestBody LzArea bean){
 | 
	
		
			
				|  |  | +        bean.setGeom((MultiPolygon) GeoCastUtil.wktToGeom(bean.getWkt()));
 | 
	
		
			
				|  |  | +        bean.setPoint(bean.getGeom().getCentroid());
 | 
	
		
			
				|  |  | +        lzAreaService.save(bean);
 | 
	
		
			
				|  |  | +        return R.succ();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 |