package org.example.controller; import com.alibaba.fastjson.JSONArray; import org.example.dto.FillCutDto; import org.example.service.RingGridService; import org.example.test.CreateRingGridFix; import org.example.utils.CommonResult; import org.geotools.api.geometry.Position; import org.geotools.api.referencing.crs.CoordinateReferenceSystem; import org.geotools.coverage.grid.GridCoordinates2D; import org.geotools.coverage.grid.GridCoverage2D; import org.geotools.coverage.grid.GridGeometry2D; import org.geotools.coverage.processing.Operations; import org.geotools.gce.geotiff.GeoTiffReader; import org.geotools.geometry.Position2D; import org.geotools.referencing.CRS; import org.geotools.util.factory.Hints; import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.GeometryFactory; import org.locationtech.jts.geom.Point; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.Mapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Map; @RestController public class RingGridController { @Autowired public RingGridService ringGridService; @RequestMapping("/fillcut") public CommonResult> calcFillCut(FillCutDto fcd) throws Exception { Coordinate[] coordinates = new Coordinate[5]; double range = 10; // 容差 double paramRange = fcd.getRange(); String paramCoordinate = fcd.getCoordinates(); if(paramRange != 0) range = paramRange; if(!paramCoordinate.isEmpty()){ try{ // 解析字符串 JSONArray coordinateArray = (JSONArray)JSONArray.parse(paramCoordinate); coordinates = new Coordinate[coordinateArray.size()+1]; for(int i=0;i(false,"解析坐标失败!"); } }else{ return new CommonResult<>(false,"缺少必要参数!"); } return ringGridService.calcFillCut(coordinates,range); } }