공지

제목1.0.0.8.183.b 버전 업데이트 안내 [수정됨]2026-09-01 17:19
카테고리GeOnDT for JS
작성자
첨부파일dist.zip (16.79MB)

업데이트 버전: 1.0.0.8.183.a  =>  1.0.0.8.183.b


1.0.0.8.183.b 추가 수정 내용:

-고도 범례 출력 중 UFrustumTerrainProjectionHelper 및 UFrsutumHelper를 생성 출력 시, 지면 색상 출력에 이상이 생기는 오류가 수정되었습니다.



​1.0.0.8.183.a 업데이트 내용:

1. 카메라 촬영 영역 중, 지면과 교차되는 영역을 중점적으로 표현하는 객체인 UFrustumTerrainProjectionHelper가 추가되었습니다.

- 스타일링 및 기본 설정 API 및 인터페이스는 UFrsutumHelper와 동일합니다.

- Frustum 과 지면 교차 영역을 강조 출력하고 그에 따라 외각선 및 3차원 형상을 출력합니다.


기존의 UFrsutumHelper 출력 (far: 18000, pitch: 10)

111.png
 

추가된 UFrustumTerrainProjectionHelper 출력 (far: 18000, pitch: 10)

222.png
 

- UFrsutumHelper와 동일하게, U3dApp의 setFrustumTerrainProjectionHelper 를 통해 생성할 수 있습니다.

관련 사용법은 https://3d.geon.kr/doc/tutorial-official/animationComponents.html (주행애니메이션 예제) 를 참고해 주십시오. > ensureDroneCameraDebug 검색


주행애니메이션 예제에 UFrustumTerrainProjectionHelper 의 품질 및 안정화 정도를 설정할 수 있는 여러 API 사용 가이드가 추가되었습니다.

현재 예제의 UI에 기본으로 설정되어있는 값들은 API 기본값이 아닌 형상 안정화에 중점을 둔 설정입니다. 설정 UI에 마우스 호버시, 설정값에 대한 설명과 사용법을 확인 하실 수 있습니다.

333.png
 

444.png
 

2. 고도 범례 출력 기능이 개선되었습니다.

​- UPathGeometry , U3dLine 및 컴포넌트의 경로를 표현하는 형상에 고도 범례 출력이 정상적으로 작동하도록 수정되었습니다.

- 출력되고 있는 객체를 고도 범례 출력에서 제외 시킬 수 있는 setExceptObjects API 가 추가되었습니다.

- 그에따라 객체 하나씩 제외할 수 있는 addExceptObject 및 removeExceptObject, clearExceptObject API 가 추가되었습니다.


추가된 API 인터페이스 명세.

/**
* 고도 색상 범례와 등고선 후처리에서 제외할 대상 목록을 설정한다.
* 제외된 대상에는 범례 색상과 등고선이 적용되지 않아 본연의 색상으로 표시된다.
* Object3D(mesh·그룹 등)를 전달하면 렌더 시점의 하위 객체 전체가 함께 제외되고,
* 컴포넌트 레이어의 컴포넌트 포지션을 전달하면 그 컴포넌트만 제외된다 —
* 일반 메쉬 타입은 자신이 복제해 소유한 형상만, 인스턴스 타입은 공유
* InstancedMesh 형상 중 해당 인스턴스만 제외되므로 같은 형상의 다른 컴포넌트는 영향받지 않는다.
* 기존 제외 목록은 전달한 목록으로 교체되고 빈 배열을 전달하면 모두 해제된다.
*
* @param {import('three').Object3D | import('@union3d/3dLayer/U3dComponentPosition').U3dComponentPosition | Array<import('three').Object3D | import('@union3d/3dLayer/U3dComponentPosition').U3dComponentPosition>} objects 제외할 대상 또는 대상 배열
* @returns {boolean} 설정 성공 여부
*
* @example
* let analy = app.activeAnalysis('Height');
* analy.setExceptObjects([mesh]);
* analy.setHeightVisible(true);
*
* @example
* // 컴포넌트 포지션 단위 제외: 목록에 넣은 컴포넌트만 본연의 색으로 남는다.
* const comps = ['drone-1', 'drone-2'].map((name) => layer.getComponentByName(name));
* analy.setExceptObjects(comps);
*/
setExceptObjects(objects: three.Object3D | U3dComponentPosition | Array<three.Object3D | U3dComponentPosition>): boolean;
/**
* 고도 후처리 제외 목록에 대상 하나를 추가한다.
*
* @param {import('three').Object3D | import('@union3d/3dLayer/U3dComponentPosition').U3dComponentPosition} object 제외할 대상
* @returns {boolean} 추가 성공 여부
*/
addExceptObject(object: three.Object3D | U3dComponentPosition): boolean;
/**
* 고도 후처리 제외 목록에서 대상 하나를 제거한다.
*
* @param {import('three').Object3D | import('@union3d/3dLayer/U3dComponentPosition').U3dComponentPosition} object 제외를 해제할 대상
* @returns {boolean} 목록에 있어 제거된 경우 true
*/
removeExceptObject(object: three.Object3D | U3dComponentPosition): boolean;
/**
* 고도 후처리 제외 목록을 모두 해제한다.
*
* @returns {void}
*/
clearExceptObjects(): void;
/**
* 현재 고도 후처리 제외 목록의 복사본을 반환한다.
* 반환 배열을 수정해도 실제 목록은 바뀌지 않는다.
*
* @returns {Array<import('three').Object3D | import('@union3d/3dLayer/U3dComponentPosition').U3dComponentPosition>} 제외 대상 배열
*/
getExceptObjects(): Array<three.Object3D | U3dComponentPosition>;


실제 사용법.

const analysis = app.getAnalysis('Height');
const exceptObjects = [
mesh1,
Line,
componet
];
analysis.setExceptObjects(exceptObjects);


고도범례의 정상 적용.

555.png


setExceptObjects 를 통한 출력객체의 선택적 제외.

666.png
 

관련 사용법은 https://3d.geon.kr/doc/tutorial-official/analysisHeightLegend.html (고도 범례 출력 예제) 를 참고해 주십시오.


3. 렌더링 캔버스을 이미지 캡처하는 기능(U3dApp의 capture API 사용)이 POI 및 Overlay 객체도 캡쳐될 수 있도록 수정되었습니다.

​- U3dApp의 capture 및 captureToBlob API 사용시, POI 및 Overlay 객체도 캡처될 수 있도록 기본 동작이 수정되었습니다.

- dom : false 를 API 파라메터이 입력하면 POI 및 Overlay 객체가 캡처되지 않습니다.

//+ [저장] 버튼 클릭, 현재 지도화면을 이미지로 저장
//+ app.capture()가 WebGL 화면과 지도 위 DOM(U3dPOI·U3dOverlay)을 합성한 dataURL을 반환한다.
//+ DOM 합성 없이 WebGL 화면만 필요하면 app.capture({dom: false})를 사용한다.
$('#save').on('click', function () {
app.capture().then((image)=>{
var aTag = document.createElement('a');
aTag.download = 'from_canvas.png';
aTag.href = image;
aTag.click();
});

//blob 형식으로 받기
app.captureToBlob().then((blob)=>{

});


from_canvas (5).png 

관련 사용법은 https://3d.geon.kr/doc/tutorial-official/saveImage.html (지도화면 이미지 저장 예제) 를 참고해 주십시오.



4. 경사향 분석 화살표 형상을 설정할 수 있는 기능이 추가 되었습니다.

- 분석 실행 옵션을 설정할 수 있는 setAnalysisOption API에  화살표 머리 및 화살표 꼬리의 길이 밎 반지름을 설정할 수 있는 옵션이 추가 되었습니다.

const analy = app.getAnalysis('SlopeAspect'); //+ 경사향 분석
analy.setAnalysisOption({
arrowHeadSize : 1.5, //화살표 머리(원뿔) 반지름
arrowHeadLength: 4, //화살표 머리(원뿔) 길이
arrowTailLength: 8, //화살표 꼬리(원기둥) 길이
arrowTailWidth: 0.1 //화살표 꼬리(원기둥) 반지름
}); //+ 화살표 형상 변경은 표출 중인 분석 결과에 재분석 없이 즉시 반영된다.

444.png
 

관련 사용법은 https://3d.geon.kr/doc/tutorial-official/analysisSlopeAspect.html (경사향 분석 예제) 를 참고해 주십시오.


5. 경사향 분석의 분석 그리드 옵션 가로길이와 세로 길이의 단위가 m(미터) 단위로 정상 인식되도록 수정되었습니다.


6. 3D Tiles 출력성능이 향상 되었습니다.

- 3D Tiles 를 출력할 수 있는 U3dModelTilesLayer의 성능이 개선되었습니다.