| | |
| | | if (null == ds || 0 == ds.getRasterCount()) return; |
| | | |
| | | setTerrainInfo(ds, layer); |
| | | createTerrainPng(dto, ds, layer); |
| | | setWaterInfo(dto, layer); |
| | | createTerrainPng(dto, ds, layer); |
| | | } finally { |
| | | if (null != ds) ds.delete(); |
| | | } |
| | |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | | }); |
| | | layer.getExtension().setMaxHeight(layer.getExtension().getMaxHeight() + layer.getWaters().getMaxHeight()); |
| | | });*/ |
| | | |
| | | 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() + 1); |
| | | layer.getExtension().setMaxHeight(ComHelper.getMaxVal(layer.getExtension().getMaxHeight(), 1000000)); |
| | | layer.getExtension().setMinHeight(ComHelper.getMaxVal(layer.getExtension().getMinHeight(), 1000000)); |
| | | layer.getExtension().setDiffer(); |
| | |
| | | |
| | | createWaterPng(dto, ds, layer, layer.getWaters().getData().get(i)); |
| | | //if (config.getCopyTif()) copyWaterTif(dto, ds, layer.getWaters().getData().get(i)); |
| | | createVectors(dto, ds, layer, layer.getWaters().getData().get(i)); |
| | | ///createVectors(dto, ds, layer, layer.getWaters().getData().get(i)); |
| | | } finally { |
| | | if (null != ds) ds.delete(); |
| | | } |
| | |
| | | if (buffer[offset] + ts[offset] > maxHeight) { |
| | | g = b = 255; |
| | | } else { |
| | | int val = (int) ((buffer[offset] + ts[offset] - minHeight) / differ * 65535); |
| | | //int val = (int) ((buffer[offset] + ts[offset] - minHeight) / differ * 65535); |
| | | int val = (int) (buffer[offset] / differ * 65535); |
| | | g = val / 256; |
| | | b = val % 256; |
| | | } |
| | |
| | | layer.getWaters().setFiles(null); |
| | | layer.getTerrain().setEpsg(null); |
| | | layer.getExtension().setDiffer(null); |
| | | layer.setWaterUrl("/hls/w" + config.getOutPath() + ".m3u8"); |
| | | layer.setFlowUrl("//hls/f" + config.getOutPath() + ".m3u8"); |
| | | |
| | | String json = JSON.toJSONString(layer); |
| | | // String json = JSONUtil.toJsonPrettyStr(layer); |