|
|
|
@ -5,7 +5,6 @@ import lombok.Builder;
|
|
|
|
|
import lombok.Data; |
|
|
|
|
import lombok.NoArgsConstructor; |
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
import org.apache.commons.io.FileUtils; |
|
|
|
|
import org.geotools.coverage.grid.GridCoordinates2D; |
|
|
|
|
import org.geotools.coverage.grid.GridCoverage2D; |
|
|
|
|
import org.geotools.coverage.grid.GridGeometry2D; |
|
|
|
@ -23,8 +22,6 @@ import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
|
|
|
|
import org.springframework.core.io.support.ResourcePatternResolver; |
|
|
|
|
|
|
|
|
|
import java.awt.image.Raster; |
|
|
|
|
import java.io.File; |
|
|
|
|
import java.io.IOException; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
@ -32,6 +29,7 @@ import java.util.List;
|
|
|
|
|
public class DigitalElevationModelUtils { |
|
|
|
|
private final String CLASS_PATH = "map/dem"; |
|
|
|
|
private List<DigitalElevationModel> dems; |
|
|
|
|
// private List<GridCoverage2D>
|
|
|
|
|
|
|
|
|
|
private DigitalElevationModelUtils() { |
|
|
|
|
// 초기화
|
|
|
|
@ -54,27 +52,23 @@ public class DigitalElevationModelUtils {
|
|
|
|
|
List<DigitalElevationModel> demList = new ArrayList<>(); |
|
|
|
|
// 클래스 경로 내의 디렉토리 내의 모든 파일을 검색합니다.
|
|
|
|
|
try { |
|
|
|
|
Resource[] resources = resolver.getResources("classpath:" + CLASS_PATH + "/dem_*.tif"); |
|
|
|
|
Resource[] resources = resolver.getResources("classpath:" + CLASS_PATH + "/dem_korea_012.tif"); |
|
|
|
|
for (Resource resource : resources) { |
|
|
|
|
|
|
|
|
|
log.info("load file name : {}", resource.getFilename()); |
|
|
|
|
if (!resource.exists()) { |
|
|
|
|
log.info("this is not file : {}", resource.getFilename()); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
File file = File.createTempFile("dem", ".tif"); |
|
|
|
|
FileUtils.copyInputStreamToFile(resource.getInputStream(), file); |
|
|
|
|
|
|
|
|
|
log.info(">>> file : {}", file); |
|
|
|
|
log.info(">>> file : {}", file.exists()); |
|
|
|
|
log.info(">>> file : {}", file.isFile()); |
|
|
|
|
|
|
|
|
|
AbstractGridFormat format = GridFormatFinder.findFormat(file); |
|
|
|
|
GridCoverage2DReader reader = format.getReader(file); |
|
|
|
|
AbstractGridFormat format = GridFormatFinder.findFormat(resource.getInputStream()); |
|
|
|
|
GridCoverage2DReader reader = format.getReader(resource.getInputStream()); |
|
|
|
|
|
|
|
|
|
GridCoverage2D coverage = reader.read(null); |
|
|
|
|
Raster raster = coverage.getRenderedImage().getData(); |
|
|
|
|
|
|
|
|
|
log.info(">>> coverage : {}", coverage); |
|
|
|
|
log.info(">>> raster : {}", raster); |
|
|
|
|
|
|
|
|
|
demList.add(DigitalElevationModel.builder() |
|
|
|
|
.coverage(coverage) |
|
|
|
|
.raster(raster) |
|
|
|
@ -83,8 +77,11 @@ public class DigitalElevationModelUtils {
|
|
|
|
|
} |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
log.warn("dem load error : {}", e.getMessage()); |
|
|
|
|
log.error("", e); |
|
|
|
|
} |
|
|
|
|
// log.info(">>> demList size : {}", demList);
|
|
|
|
|
log.info(">>> demList size : {}", demList.size()); |
|
|
|
|
|
|
|
|
|
this.dems = demList; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -101,6 +98,7 @@ public class DigitalElevationModelUtils {
|
|
|
|
|
|
|
|
|
|
for (DigitalElevationModel dem : this.dems) { |
|
|
|
|
Raster raster = dem.getRaster(); |
|
|
|
|
// if(raster == null) raster = dem.getCoverage().getRenderedImage().getData();
|
|
|
|
|
GridGeometry2D gridGeometry = dem.getCoverage().getGridGeometry(); |
|
|
|
|
|
|
|
|
|
GridCoordinates2D posGrid = null; |
|
|
|
|