공지

제목1.0.0.9.183.a 버전 업데이트 안내2026-09-14 15:54
카테고리GeOnDT for JS
작성자
첨부파일dist.zip (16.89MB)

업데이트 버전: 1.0.0.9.183.a 


​업데이트 내용:


1. Map 컨트롤러에 제어입력 종료 후, 추가적 관성이동 기능이 추가되었습니다.

- 지도 PAN 이동 및 회전 제어에 대해서, 입력 종료 후에도 입력 강도(이동량, 이동속도)에 따라서 추가적으로 관성 이동이 적용되는 기능이 추가 되었습니다.

- 지도 PAN 이동 및 회전 제어시, 추가적 관성 이동이 기본값으로 적용됩니다.

- MapControl의 getFactor API를 통해 리턴되는 factor 객체에 관련 속성을 설정함으로써, 기능을 끄거나 킬 수 있습니다.

const control = app.getMapControl();
Object.assign(control.getFactor(), {
"panInertiaEnabled": false, //PAN 이동시 관성 끄기, 기본값은 true 입니다.
"rotateInertiaEnabled": false //회전 시 관성 끄기, 기본값은 true 입니다.
});


-그 밖에도 관성 이동 관련 설정값을들 수정하여 지도 제어를 서비스 환경에 맞춰 변경할 수 있습니다.

* getFactor API로 리턴되는 FactorOption (컨트롤러 설정 객체) 중 관성 이동 관련 속성

* @property {boolean} [panInertiaEnabled=true] 마우스 pan 종료 후 관성 사용 여부. false이면 놓는 즉시 멈춘다.
* @property {number} [panInertiaFactor=0.55] 놓을 때의 관성 속도 배율. 유한한 0 이상이며 0이면 관성을 끈다. 커질수록 더 멀리 이동한다.
* @property {number} [panAnchorInertiaFactor=0.5] 실제 앵커 팬의 관성 시작 속도에 추가로 곱하는 배율(0~1). 기존 세기·속도 상한 적용 후 곱한다. 0은 앵커 팬 관성 끄기, 1은 기존 세기이며 1 초과는 1로 제한한다. 누락·비유한 값·음수는 0.5를 사용한다. 일반 팬 대체·1인칭 이동에는 적용하지 않으며, 진행 중인 앵커 팬 관성도 0으로 설정하면 다음 프레임에서 취소한다.
* @property {number} [panInertiaDamping=5.5] 초당 지수 감쇠 계수(1/s). 유한한 양수이며 클수록 빠르게 멈춘다. 4는 여유롭게, 12는 짧게 감속한다.
* @property {number} [panInertiaMinSpeed=5] 관성 시작·정지 문턱값(CSS px/s). 유한한 양수이며 이 속도 이하는 움직이지 않는다.
* @property {number} [panInertiaMaxSpeed=1000] 관성 시작 속도 상한(CSS px/s). 유한한 양수이며 빠른 드래그의 과도한 이동을 제한한다. 최소 속도 이하이면 관성을 시작하지 않는다.
* @property {number} [panInertiaSampleTime=80] 속도 추정의 평활 시간과 마지막 이동의 유효 시간(ms). 유한한 양수이며, 이 시간보다 오래 멈췄다 놓으면 관성이 생기지 않는다. 커질수록 여러 입력의 속도를 완만하게 반영한다.
* @property {boolean} [rotateInertiaEnabled=true] 마우스 회전 종료 후 관성 사용 여부. false이면 놓는 즉시 회전을 멈춘다. 팬 관성과 독립적으로 설정한다.
* @property {number} [rotateInertiaFactor=0.35] 놓을 때의 회전 입력 속도 배율. 유한한 0 이상이며 0이면 회전 관성을 끈다.
* @property {number} [rotateInertiaDamping=8] 회전 관성의 초당 지수 감쇠 계수(1/s). 유한한 양수이며 클수록 빠르게 멈춘다.
* @property {number} [rotateInertiaMinSpeed=5] 회전 관성 시작·정지 문턱값(CSS px/s). 각속도가 아닌 화면 입력 속도이며 유한한 양수다.
* @property {number} [rotateInertiaMaxSpeed=1200] 회전 관성 시작 입력 속도 상한(CSS px/s). 유한한 양수이며 최소 속도 이하이면 관성을 시작하지 않는다.
* @property {number} [rotateInertiaSampleTime=80] 회전 속도 평활 시간과 마지막 이동의 유효 시간(ms). 유한한 양수이며 이 시간보다 오래 멈췄다 놓으면 관성을 시작하지 않는다.
*
* @example 관성 감각 조정
* const factor = app.getMapControl().getFactor();
* factor.panInertiaEnabled = true;
* factor.panInertiaFactor = 0.55; // 낮은 시작 속도로 잔여 이동을 줄임
* factor.panAnchorInertiaFactor = 0.5; // 앵커 팬의 관성 시작 속도는 추가로 절반 감소
* factor.panInertiaDamping = 5.5; // 낮춘 속도에서 완만하게 감속
* factor.panInertiaMinSpeed = 5;
* factor.panInertiaMaxSpeed = 1000;
* factor.panInertiaSampleTime = 80;
* factor.rotateInertiaEnabled = true;
* factor.rotateInertiaFactor = 0.35;
* factor.rotateInertiaDamping = 8;
*/

- 화면 컨트롤 설정 예제가 추가되었습니다(https://3d.geon.kr/doc/tutorial-official/edition/MapControllSetting.html). 컨트롤러 관련 설정을 수정하며 컨트롤러 제어 변화를 파악할 수 있습니다.

 


-U3dApp의 createDebugCanvas 및 createDevToolView API 실행 시, 출력되는 Development Tool 패널의 Settings 탭에 컨트롤러 관련 설정을 변경할 수 있도록 컨트롤러 설정 영역이 추가되었습다.

 


2. 고도 범례 표현을 적용 시, 투명도를 가진 객체가 정상적으로 제외 처리되어 출력되지 않는 오류가 수정되었습니다.

- 투명도를 가진 객체가 제외 처리 되었을때(setExceptObjects 및 addExecptObject 사용 시), 정상적으로 제외 처리가 되어 투명도를 가진 재질 색상이 합성된 고도 범례가 출력되지 않던 오류가 수정 되었습니다.


고도 범례 표현 적용 전

 


고도 범례 표현 적용 후

 


고도 범례 표현 제외 처리

const analysis = getAnalysis('height');
analysis.setExceptObjects([
Mesh1,
Plane1,
PathGeometry,
componetPosition
]);
}

 


고도 범례 분석 예제 (https://3d.geon.kr/doc/tutorial-official/edition/analysisHeightLegend.html) 를 참고 해 주십시오.


3. 3D 모드에서 2D 모드 전환시, 카메라 전환 애니메이션이 개선되었습니다.

- U3dApp의 set3DMode 와 set2DMode API를 사용하여 3D 모드와 2D 모드를 전환할때, 카메라 이동 애니메이션이 자연스럽게 전환되도록 개선되었습니다.


4. 2D 모드에서 카메라 이동 API를 사용시, 2D 모드에 맞게 카메라가 이동하도록 수정되었습니다.

-U3dApp의 set2DMode API를 사용하여 2D 모드로 전환 후, setCameraPostion, flyTo 등이 카메라 이동 API를 사용할 시, 카메라가 2D 모드에 맞게 이동하도록 수정되었습니다.


5. 카메라 이동에 따라 데이터 업데이트가 필요한지 판정하는 공식이 개선되었습니다.

- 카메라 이동에 따라 데이터를 업데이트가 필요한지의 업데이트 필요 판정이 더 상세하게 이루어질 수 있도록 개선 되었습니다.