| | |
| | | @SysLog() |
| | | @ApiOperation(value = "查询面分析") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "wkt", value = "面WKT", dataType = "String", example = "POLYGON ((165.680851 31.333443,166.383982 31.283475,166.016355 30.908709,165.680851 31.333443))") |
| | | //@ApiImplicitParam(name = "wkt", value = "面WKT", dataType = "String", example = "POLYGON ((165.680851 31.333443,166.383982 31.283475,166.016355 30.908709,165.680851 31.333443))") |
| | | @ApiImplicitParam(name = "wkt", value = "面WKT", dataType = "String", example = "POLYGON ((56.61 33.94,115.04 33.56,114.09 -7.17,52.22 -6.22,56.61 33.94))") |
| | | }) |
| | | @GetMapping(value = "/selectByPolygon") |
| | | public ResponseMsg<Object> selectByPolygon(String wkt) { |
| | |
| | | |
| | | private String bands; |
| | | |
| | | private String min; |
| | | |
| | | private String max; |
| | | |
| | | private String bandType; |
| | | |
| | | private String ct; |
| | |
| | | this.bands = bands; |
| | | } |
| | | |
| | | public String getMin() { |
| | | return min; |
| | | } |
| | | |
| | | public void setMin(String min) { |
| | | this.min = min; |
| | | } |
| | | |
| | | public String getMax() { |
| | | return max; |
| | | } |
| | | |
| | | public void setMax(String max) { |
| | | this.max = max; |
| | | } |
| | | |
| | | public String getBandType() { |
| | | return bandType; |
| | | } |
| | |
| | | |
| | | private String bands; |
| | | |
| | | private String min; |
| | | |
| | | private String max; |
| | | |
| | | private String bandType; |
| | | |
| | | private String ct; |
| | |
| | | this.bands = bands; |
| | | } |
| | | |
| | | public String getMin() { |
| | | return min; |
| | | } |
| | | |
| | | public void setMin(String min) { |
| | | this.min = min; |
| | | } |
| | | |
| | | public String getMax() { |
| | | return max; |
| | | } |
| | | |
| | | public void setMax(String max) { |
| | | this.max = max; |
| | | } |
| | | |
| | | public String getBandType() { |
| | | return bandType; |
| | | } |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 读取栅格服务 |
| | |
| | | mf.setCt(null == colorTable ? null : colorTable.toString()); |
| | | // 高程基准 |
| | | mf.sethDatum(null); |
| | | // 设置最值 |
| | | setMinAndMax(ds, mf); |
| | | |
| | | // 分辨率 |
| | | double[] tr = new double[6]; |
| | |
| | | * 获取Dataset的最大点 |
| | | */ |
| | | private Geometry getMaxPoint(Dataset ds) { |
| | | /** |
| | | /* |
| | | * transform[0] 左上角x坐标 |
| | | * transform[1] 东西方向分辨率 |
| | | * transform[2] 旋转角度, 0表示图像 "北方朝上" |
| | |
| | | |
| | | return point; |
| | | } |
| | | |
| | | /** |
| | | * 设置最值 |
| | | * GDALRasterBand::GetHistogram 统计直方图 |
| | | */ |
| | | private void setMinAndMax(Dataset ds, MetaFileEntity mf) { |
| | | List<Double> minList = new ArrayList<>(); |
| | | List<Double> maxList = new ArrayList<>(); |
| | | |
| | | for (int i = 1; i <= ds.getRasterCount(); i++) { |
| | | Double[] min = new Double[1]; |
| | | Double[] max = new Double[1]; |
| | | ds.GetRasterBand(i).GetMinimum(min); |
| | | ds.GetRasterBand(i).GetMaximum(max); |
| | | |
| | | minList.add(min[0]); |
| | | maxList.add(max[0]); |
| | | } |
| | | |
| | | mf.setMin(StringHelper.join(minList, ",")); |
| | | mf.setMax(StringHelper.join(maxList, ",")); |
| | | } |
| | | } |