안녕하세요.
문의 주신 내용은 U3dModelWFSLayer로 생성된 객체에 대해 지면으로부터의 높이를 설정하는 방법 및 사용법에 관한 것으로 확인됩니다.
현재 국가공간정보통합플랫폼(K-GeoP) 에서 사용 중이신 버전을 기준으로, 적용 가능한 방법을 안내드리겠습니다.
1. 이벤트 등록 및 객체 제어 방법
U3dModelWFSLayer 생성 이후, 'mesh-loaded' 이벤트를 등록하여 전달받은 객체 데이터를 기반으로 특정 대상의 높이를 설정할 수 있습니다.
아래 예시에서는 feature 속성 정보 중 건물명 컬럼(buld_nm) 을 기준으로 특정 객체를 선별한 뒤, 높이를 설정하는 방식을 사용합니다.
선별된 객체의 지면 기준 높이값은
app.getHeightAtPoint(world 좌표) 함수를 통해 지형 표고값을 반환받아 적용할 수 있습니다.
자세한 구현 방법은 아래 예제 코드와 함께 참고해 주시기 바랍니다.
[ 예시 코드 ]
wfsModel.on('mesh-loaded', function(result){
const mesh = result.data;
const feature = mesh._ufeature;
if(!feature || !feature.properties) return;
const colName = 'buld_nm';
const buildingName = "여의도성모병원"
const prop = feature.properties[colName]
if(prop === buildingName){
const terrainHeight = app.getHeightAtPoint(mesh.position); //해당 위치의 지면 높이를 반환해주는 함수
if(terrainHeight && !isNaN(terrainHeight)){
mesh.position.z = terrainHeight + 100; //지면 높이 + 설정 높이
mesh.setColor(0xff0000); // 색상 변경 (*확인용)
}
}
})
[ 예제 코드 실행 후 이미지 ]
|

|
|

|
|
지면 높이 설정 전
|
|
지면 높이 설정 후
|
관련 내용에 대해서 질문 사항 있으시면 답변 부탁드리겠습니다.
감사합니다. 좋은 하루 되세요.
|