|
@@ -0,0 +1,114 @@
|
|
|
+package com.sysu.admin.site;
|
|
|
+
|
|
|
+import com.sysu.admin.controller.city.*;
|
|
|
+import com.sysu.admin.controller.crop.CropLandService;
|
|
|
+import com.sysu.admin.controller.crop.range.LandRangeIndexService;
|
|
|
+import com.sysu.admin.utils.shape.GeoCastUtil;
|
|
|
+import com.xiesx.fastboot.base.result.BaseResult;
|
|
|
+import com.xiesx.fastboot.base.result.R;
|
|
|
+import com.xiesx.fastboot.core.token.annotation.GoToken;
|
|
|
+import com.xiesx.fastboot.core.token.handle.CurrentToken;
|
|
|
+import org.locationtech.jts.geom.Point;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Controller;
|
|
|
+import org.springframework.ui.Model;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 镇区域
|
|
|
+ */
|
|
|
+@RequestMapping("/site/city")
|
|
|
+@Controller
|
|
|
+public class SiteCityController {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ ProvinceRepository provinceRepository;
|
|
|
+ @Autowired
|
|
|
+ CityRepository cityRepository;
|
|
|
+ @Autowired
|
|
|
+ DistrictRepository districtRepository;
|
|
|
+ @Autowired
|
|
|
+ LandRangeIndexService mLandRangeIndexService;
|
|
|
+ @Autowired
|
|
|
+ CropLandService cropLandService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 种植结构
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/zzjg")
|
|
|
+ public String zzjg(Model model){
|
|
|
+ model.addAttribute("pac","441821");
|
|
|
+ return "page/zzjg";
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/findJson")
|
|
|
+ @ResponseBody
|
|
|
+ public BaseResult findJson(int code, int level){
|
|
|
+ Object res = null;
|
|
|
+ switch (level){
|
|
|
+ case 0:
|
|
|
+ Province province = provinceRepository.findByCode(code);
|
|
|
+ res = province;
|
|
|
+ if(province != null){
|
|
|
+ province.setWkt(GeoCastUtil.geomToWkt(province.getGeom()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ City city = cityRepository.findByCode(code);
|
|
|
+ res = city;
|
|
|
+ if(city != null){
|
|
|
+ city.setWkt(GeoCastUtil.geomToWkt(city.getGeom()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ District district = districtRepository.findByCode(code);
|
|
|
+ res = district;
|
|
|
+ if(district != null){
|
|
|
+ district.setWkt(GeoCastUtil.geomToWkt(district.getGeom()));
|
|
|
+ district.setTableName(mLandRangeIndexService.getTableNameByCode(district.getCode()));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return R.succ(res);
|
|
|
+ }
|
|
|
+
|
|
|
+ @RequestMapping(value = "/findBuffer")
|
|
|
+ @ResponseBody
|
|
|
+ public BaseResult findBuffer(@GoToken() CurrentToken currentToken, @RequestBody CommonVo commonVo){
|
|
|
+ Object res = null;
|
|
|
+ switch (commonVo.getLevel()){
|
|
|
+ case 0:
|
|
|
+ Province province = provinceRepository.findByCode(commonVo.getCode());
|
|
|
+ res = province;
|
|
|
+ if(province != null){
|
|
|
+ Point point = cropLandService.getCenterPoint(province.getGeom());
|
|
|
+ province.setWkt(cropLandService.getBuffer(new Double[]{point.getX(),point.getY()}, 2000));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ City city = cityRepository.findByCode(commonVo.getCode());
|
|
|
+ res = city;
|
|
|
+ if(city != null){
|
|
|
+ Point point = cropLandService.getCenterPoint(city.getGeom());
|
|
|
+ city.setWkt(cropLandService.getBuffer(new Double[]{point.getX(),point.getY()}, 2000));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ District district = districtRepository.findByCode(commonVo.getCode());
|
|
|
+ res = district;
|
|
|
+ if(district != null){
|
|
|
+ Point point = cropLandService.getCenterPoint(district.getGeom());
|
|
|
+ district.setWkt(cropLandService.getBuffer(new Double[]{point.getX(),point.getY()}, 2000));
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return R.succ(res);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|