| | |
| | | } |
| | | |
| | | public void setWaterHeight(LayerDto layer, List<String> files) { |
| | | files.parallelStream().forEach(file -> { |
| | | /*files.parallelStream().forEach(file -> { |
| | | Dataset ds = null; |
| | | try { |
| | | ds = gdal.Open(file, gdalconstConstants.GA_ReadOnly); |
| | |
| | | } finally { |
| | | if (null != ds) ds.delete(); |
| | | } |
| | | }); |
| | | });*/ |
| | | |
| | | int c = files.size(); |
| | | int step = c <= 1 ? 1 : c / 10; |
| | | for (int i = 0; i < c; i += step) { |
| | | Dataset ds = null; |
| | | try { |
| | | ds = gdal.Open(files.get(i), gdalconstConstants.GA_ReadOnly); |
| | | if (null == ds || 0 == ds.getRasterCount()) return; |
| | | |
| | | double[] mm = new double[2]; |
| | | ds.GetRasterBand(1).ComputeRasterMinMax(mm, 0); |
| | | layer.getWaters().setHeight(mm[0], mm[1]); |
| | | } finally { |
| | | if (null != ds) ds.delete(); |
| | | } |
| | | } |
| | | |
| | | layer.getExtension().setMaxHeight(layer.getExtension().getMaxHeight() + layer.getWaters().getMaxHeight()); |
| | | layer.getExtension().setMaxHeight(ComHelper.getMaxVal(layer.getExtension().getMaxHeight(), 1000000)); |
| | | layer.getExtension().setMinHeight(ComHelper.getMaxVal(layer.getExtension().getMinHeight(), 1000000)); |