PolygonData -> JsonNode 변환 예제 커밋

This commit is contained in:
2025-11-26 18:45:09 +09:00
parent 176c6e77dd
commit 1dbb3e1b50
6 changed files with 126 additions and 10 deletions

View File

@@ -1,5 +1,8 @@
package com.kamco.cd.kamcoback.postgres.core;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.kamco.cd.kamcoback.changedetection.dto.ChangeDetectionDto;
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataGeomEntity;
import com.kamco.cd.kamcoback.postgres.repository.changedetection.ChangeDetectionRepository;
@@ -16,7 +19,7 @@ public class ChangeDetectionCoreService {
private final ChangeDetectionRepository changeDetectionRepository;
public List<ChangeDetectionDto> getPolygonToPoint() {
public List<ChangeDetectionDto.TestDto> getPolygonToPoint() {
List<MapSheetAnalDataGeomEntity> list = changeDetectionRepository.findAll();
return list.stream()
@@ -26,8 +29,24 @@ public class ChangeDetectionCoreService {
// 중심 좌표 계산
Point centroid = polygon.getCentroid();
return new ChangeDetectionDto(p.getId(), polygon, centroid.getX(), centroid.getY());
return new ChangeDetectionDto.TestDto(p.getId(), polygon, centroid.getX(), centroid.getY());
})
.collect(Collectors.toList());
}
public List<JsonNode> getPolygonToJson() {
List<String> list = changeDetectionRepository.findPolygonJson();
ObjectMapper mapper = new ObjectMapper();
return list.stream()
.map(
s -> {
try {
return mapper.readTree(s);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
})
.collect(Collectors.toList());
}
}

View File

@@ -1,6 +1,10 @@
package com.kamco.cd.kamcoback.postgres.repository.changedetection;
import java.util.List;
public interface ChangeDetectionRepositoryCustom {
String getPolygonToPoint();
List<String> findPolygonJson();
}

View File

@@ -3,6 +3,7 @@ package com.kamco.cd.kamcoback.postgres.repository.changedetection;
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetAnalDataGeomEntity.mapSheetAnalDataGeomEntity;
import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalDataGeomEntity;
import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.jpa.impl.JPAQueryFactory;
import java.util.List;
import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport;
@@ -23,10 +24,14 @@ public class ChangeDetectionRepositoryImpl extends QuerydslRepositorySupport
return null;
}
public List<MapSheetAnalDataGeomEntity> findAll() {
@Override
public List<String> findPolygonJson(){
return queryFactory
.selectFrom(mapSheetAnalDataGeomEntity)
.orderBy(mapSheetAnalDataGeomEntity.id.desc())
.fetch();
.select(
Expressions.stringTemplate("ST_AsGeoJSON({0})", mapSheetAnalDataGeomEntity.geom)
)
.from(mapSheetAnalDataGeomEntity)
.orderBy(mapSheetAnalDataGeomEntity.id.desc())
.fetch();
}
}