2.x 버전 업데이트

- 업데이트 내역 -

2.20.0 (2025/11/03)

1. 성능 개선 및 내부 안정화 작업을 수행하였습니다.

2.19.0 (2025/10/13)

1. 오버레이 기능 오류 수정 (이슈 #513)

  • 간헐적으로 검은색 이미지가 오버레이 되는 현상이 수정되었습니다.

  • 이미지 오버레이 투명값 옵션이 추가되었습니다.

polygon.setOverlayObject({
   style : "polygon",
   coordinate : vertex,
   alpha : 0.6,           // 추가된 옵션
   image : _image
});
  • 건물 심플모드에 오버레이 적용되지 않는 현상 수정

  • 건물 외곽선 렌더링을 원하지 않을 경우 : Module.SetSimpleModeLineRender(false); image

2. 라인객체 GLOW 효과 개선

  • 기존 GLOW 효과를 개선하였습니다. image

3. JSPolygon 편집 API 추가

let polygon = Module.createPolygon("POLYGON");

// 이동
polygon.move(longitude, latitude, alttitude);

// 회전
polygon.setRotation(x, y, z);

// 스케일
polygon.setScale(x, y, z);

4. JSObject3D 축의 끝점 좌표 반환 API 추가

  • 회전, 스케일 시 축을 생성하여 직관적으로 확인할 수 있도록 축의 끝점 좌표를 반환하는 API가 추가되었습니다.

  • 중심과 끝점으로 라인을 생성합니다.

// axis (x: 0, y: 1, z: 2)
let endpoint = getAxisEndpoint(axis, length);

5. 카메라 이동 오류 수정 (이슈 #514)

  • 카메라 이동 후 간헐적으로 카메라 방향이 틀어지는 현상이 있어 수정되었습니다.

6. 심플모드 건물에서 Hsv 옵션 (이슈 #512)

  • 건물 레이어가 심플모드인 경우에도 Hsv 옵션이 정상 동작하도록 수정되었습니다.

7. 타일 레이어의 폴리곤 기반 요청 영역 지정

  • JSLayer의 setLimitBoundary API가 기존 사각 영역을 포함하여 폴리곤 영역도 수용하도록 변경되었습니다.

  • 건물의 중점이 폴리곤 영역에 포함되면 데이터를 로드합니다.

  • createXDServerLayer API에 boundaryLimit 옵션으로도 설정할 수 있습니다.

    Module.getTileLayerList().createXDServerLayer({
      url : "https://xdworld.server.url",
      servername : "XDServer",
      name : "layer_name",
      type : 9,
      minLevel : 0,
      maxLevel : 15,
      boundaryLimit : [
    	[126.93005255915998, 37.529214172573376, 0.0],
    	[126.94102835336719, 37.52029412432422, 0.0],
    	[126.93891529125652, 37.51798498831805, 0.0],
    	[126.92841620055285, 37.516978366894115, 0.0],
    	[126.92514862234246, 37.51770012779483, 0.0],
    	[126.91756299430655, 37.521708873949606, 0.0],
      ]
    });

8. 지형 이미지 음영 마스킹 기능 추가

  • 경위도 최소, 최대 좌표로 지정한 영역 외 지형 이미지를 음영처리하는 옵션 API가 추가되었습니다.

    Module.getTerrain().setImageMask({
        active : true,
        range : {
            min : [126.917562, 37.516978],
            max : [126.941028, 37.529214],
        },
        color : {a : 200, r : 0, g : 0, b : 0}
    });

9. 지형 내장 이미지 사용 여부 설정 API 추가

  • 엔진 내 내장된 0레벨 지구본 이미지 사용 여부를 설정하는 옵션이 Module.initialize API에 추가되었습니다.

  • true로 설정하는 경우 내장된 이미지를 사용하며, false로 설정하는 경우 지정한 이미지 서버로 0레벨 이미지를 요청합니다.

  • 디폴트 값은 true 입니다.

    Module.initialize({
        container: document.getElementById("map"),
        terrain : {
            dem : {
                url : "...",
                name : "dem",
                servername : "XDServer",
            },
            image : {
                url : "...",
                name : "tile",
                servername : "XDServer",
                useBuiltInZeroImage : false    // false로 설정 시 지정한 서버로부터 0레벨 이미지 수신
            },						
        },
        ....
    }

2.18.0 (2025/09/01)

1. 오브젝트 선택 시 외곽선 렌더링

  • JSReal3D, JSGhostSymbol, JSPolygon 오브젝트 선택 시 아래 이미지와 같이 외곽선이 함께 출력됩니다. Image

  • JSOption의 setRenderSelectSilhouette API를 활용하여 외곽선을 끄고 켤 수 있습니다.

    Module.getOption().setRenderSelectSilhouette(true);   // on
    Module.getOption().setRenderSelectSilhouette(false);  // off

2. DEM 단독 렌더링

  • 지형 영상 없이 DEM 단독으로 렌더링이 가능하도록 개선되었습니다.

3. 화면 중심 기반 마우스 틸트, 회전 옵션 (이슈 509)

  • 마우스로 화면 틸트, 회전 시 화면 중앙점을 중심으로 움직이도록 옵션이 추가되었습니다.

    Module.getControl().setMouseClickCenterMode(true);

2.17.1 (2025/08/21)

1. 이미지 기반 오버레이 기능 구현 (이슈 502)

  • 기존 색상으로만 표현되던 오버레이 기능을 이미지 기반으로도 적용할 수 있도록 기능이 업데이트 되었습니다.

    var polygon = Module.createOverlayObject("POLYGON");		
    var color = new Module.JSColor(255, 255, 0);		
    polygon.setOverlayObject({
      style : "polygon",
      coordinate : vertex,
      color : color,
      image : {
    	width : img.width,
    	height : img.height,
    	data : ctx.getImageData(0, 0, img.width, img.height).data,
      }
    });

2. 수인한도분석 결과값 추가

  • 각 격자에 시간대별 일조량 추가

    [결과값]
    0 : {
    	analysisList: {
    		0 : {sunrise: true, time: 10},	// sunrise(일조인지 아닌지), time(일조 시간, 입력한 분석텀)
    		1 : {sunrise: true, time: 10},
    		.
    		.
    		.
    	}, 
    	color: {
    		A : 120,
    		R : 166,
    		G : 166,
    		B : 166
    	}, 
    	continuevalue: 50, 
    	id: 'grid_0', 
    	isanalysis: true,
    	position : {
    		alt: 3.981043982319534,
    		lat: 35.1712107372302,
    		lon: 129.13061351968938
    	},
    	totalvalue : 500
    }
    .
    .
    .

3. 하드웨어 가속 옵션 삭제

  • 하드웨어 가속 옵션 UI 삭제 및 console 경고 안내

4. AABB 추가

  • ECEF 좌표계에서의 AABB 좌표를 반환하는 기능이 추가되었습니다.

    var box = _polygon.getBoundary();
    // AABB Coordinates to Spherical Coordinates
    // bottom(4), top(4)
    var boxArray = box.getBox();
    
    const corners = {
    	bottom: [
    		[boxArray.get(0).longitude, boxArray.get(0).latitude, boxArray.get(0).altitude],
    		[boxArray.get(1).longitude, boxArray.get(1).latitude, boxArray.get(1).altitude],
    		[boxArray.get(2).longitude, boxArray.get(2).latitude, boxArray.get(2).altitude],
    		[boxArray.get(3).longitude, boxArray.get(3).latitude, boxArray.get(3).altitude],
    	],
    	top: [
    		[boxArray.get(4).longitude, boxArray.get(4).latitude, boxArray.get(4).altitude],
    		[boxArray.get(5).longitude, boxArray.get(5).latitude, boxArray.get(5).altitude],
    		[boxArray.get(6).longitude, boxArray.get(6).latitude, boxArray.get(6).altitude],
    		[boxArray.get(7).longitude, boxArray.get(7).latitude, boxArray.get(7).altitude],
    	]
    };

2.17.0 (2025/08/11)

1. Figure 객체 편집 UI 제어 API 추가

  • scaleLock, rotateLock, moveLock

    let fig = Module.createFigure("figs");
    
    // 크기 UI 삭제
    fig.scaleUI = false;
    
    // 회전 UI 삭제
    fig.rotateUI = false;
    
    // 이동 UI 삭제
    fig.moveUI = false;

2. 하드웨어 가속 옵션 안내

  • Chrome 브라우저가 아닐 경우 Chrome 브라우저 권장 안내

    image

  • Chrome 브라우저의 "하드웨어 가속" or "그래픽 가속" 을 사용하지 않을 경우 안내

    image

3. Indicator 기능 개선

  • 타겟이 카메라 뒤에 있는 경우 Indicator가 정상적으로 계산되지 않는 현상을 수정하였습니다.

2.16.1 (2025/07/15)

1. 고용량 3DS 로딩 최적화 기능이 추가되었습니다.

var polygon = Module.createPolygon("POLYGON_3DS_LOAD");
	polygon.loadFile({
		url : _strURL,
		align : "center",
		position : pos,
		rotate :  fAngle,
		rebuild : true,
		discardVertexData : true,   // 추가 : 좌표 GPU 업데이트 후 삭제
		compressObject : false,     // 추가 : Import 후 압축 vertex 압축 안함.
	});

2. 건물 높이 기준 횡단면 선분 추출 기능 추가

  • 지정한 건물의 높이기준 외곽선분 추출 기능이 추가되었습니다.

  • object JSReal3D::getFloorSliceEdge(double _height)

  • 반환값 예시

{
   "header": {
       // 데이터 바운더리 최소, 최대 경위도
       "minLon": 126.927487351387,    
       "minLat": 37.52418520251252,
       "maxLon": 126.92795509699533,
       "maxLat": 37.52453873807533,
       // 설정한 단면 분석 높이
       "cutHeight": 12.5,
       // 설정한 건물의 중심점
       "location": {
           "lon": 126.92774196141701,
           "lat": 37.52434050186833,
           "alt": 39.250494956970215
       },
       // 건물의 최소, 최대 높이 (해발고도)
       "elevation": {
           "min": 12.125300407409668,
           "max": 66.37568950653076
       }
   },
   // 단면 선분 정보 [A점(경도,위도,높이)B점(경도,위도,높이)] [...] 
   "edge": [
       [
           126.9277111803299,
           37.52448908205179,
           22.275913742370903,
           126.927487351387,
           37.52435413856168,
           22.275933586061
       ],
       [
           126.9277111803299,
           37.52448908206028,
           22.27591446880251,
           126.92779354446381,
           37.524538738067506,
           22.27593025751412
       ],
      [ 
          ...
       ]
   ]
}

2.16.0 (2025/07/07)

1. Camera 이동 관련 API 오류 수정

  • 카메라 이동시 설정된 위치가 아닌 다른 위치로 이동되는 오류가 있어 수정되었습니다.

2. POI ahead 옵션 오류 수정

  • POI ahead 옵션이 동작하지 않아 수정되었습니다.

3. Tile Layer 요청 제한 기능 개선

  • 모든 객체가 load 된 이후에 요청 제한 기능이 실행되어 즉각적으로 반영되도록 기능 개선하였습니다.

4. JSPolygon.createTMCoordPlane API 오류 수정

  • 특정 유형 데이터에서 격자 밀림현상이 수정되었습니다.

2.15.1 (2025/06/25)

1. 바람 효과 표현중 2D 표현이 되지 않는 오류 수정

2.15.0 (2025/06/02)

1. 거리 측정 기능 오류 수정

  • 거리측정 데이터 삭제 후 재측정 시 라인이 생성되지 않는 현상을 수정하였습니다.

2.14.2 (2025/05/27)

1. 고스트심볼에 조망보기, 가시권분석3D 개선

  • 고스트심볼에서 조망보기, 가시권분석(3D) 성능을 향상하였습니다.

2. 카메라 이동 오류 수정 (issue #495)

  • 같은 위치로 이동할 경우 오류가 발생하여 예외처리를 추가하였습니다.

3. 객체가 지형 밑인지 위인지 사용자가 설정하는 함수

  • 객체가 지형 위, 아래인지에 따라서 투명값 렌더링 순서에 영향이 있어 애매한 객체는 사용자가 직접 지정 가능합니다.(ex : 지하도)

  • JSPolygon::setUnderground(boolean _bUnderground) : 지형 위 아래 설정

  • JSPolygon::getUnderground() : 지정 상태 반환

     var LayerList = new Module.JSLayerList(true);
     var layer = LayerList.nameAtLayer("Layer");
     if(layer!=null)
     {
             var pObject = layer.keyAtObject("Object");
             if(pObject==null) return;
                    pObject.setUnderground(true);
     }

4. 거리측정 기능 개선

  • 거리 측정 시 라인 지형결합 on/off 설정 API 추가하였습니다.

    • void setMeasureDistancePointUnionTerrain(bool _set);

      • 이후에 입력되는 라인의 지형결합 적용 여부를 설정할 수 있습니다.

      • Class : JSOption

      • Parameter

        • _set : 지형결합 적용 여부(true/false)

      • 예시

        Module.getOption().setMeasureDistancePointUnionTerrain(false);

5. POI에 가까이 다가가는 경우 사라지는 현상 개선

  • JSLayer의 minDistance 값보다 큰 거리에서 POI가 사라지는 현상을 수정하였습니다.

2.14.1 (2025/05/19)

1. JSLayer에 setAlpha API의 동작 방식 변경

  • 기존 Object의 속성을 일괄적 조회후 수정 방식에서 실시간 적용 방식으로 변경

  • 슬라이드 방식으로 투명도 처리 가능

2. JSEditTerrain 개별 삭제 기능 추가 (issue #492)

  • 성절토 List index로 삭제할 수 있는 기능 추가

3. 좌표변환 추가 (issue #494)

  • 기존 WMS의 지원 좌표계는 5개(4326, 5174, 5179, 5180, 5186)

  • EPSG:3765 좌표변환 추가

  • 다른 EPSG 좌표계 지원할 수 있도록 추가

4. moveLonLatBoundarybyJson API 오류 수정 (issue #495)

  • 이동 후 똑같은 위치로 다시 이동시 오류 발생하여 예외처리

5. 이미지 오버레이 기능 오류 수정 (issue #496)

  • 이미지 오버레이시 지형 결합되지 않는 오류 수정

2.14.0 (2025/05/12)

1. JSCamera의 moveOvalDist 이동 기준 해제 (issue #488)

  • API 실행 시 이동 여부 기준 100m를 해제하였습니다.

2. 경사향 가시화 결과 갱신 오류 수정 (issue #488)

  • 경사향 가시화 결과가 갱신되지 않는 현상을 수정하였습니다.

3. 태풍 위험반경 표시 오류 수정

  • RTT 기반 태풍 위험반경이 표시되지 않는 현상을 수정하였습니다.

4. JSHTMLObject 스테레오뷰 오류 수정 (issue #491)

  • JSHTMLObject 스테레오뷰 실행시 위치 오류를 수정하였습니다.

2.13.0 (2025/04/07)

1. 터파기 가시화 오브젝트 추가(https://github.com/EgisCorp/XDWorld/issues/476)

 * 기존 JSColorPipe 뿐만 아니라 JSFlowPolygon, JSPolygon, JSReal3d(건물) 오브젝트도 원형 터파기 영역에 보이도록 기능을 추가하였습니다.
 * 보이고자 하는 JSLayer의 setViewInTransparency API를 통해 보이기 여부를 설정할 수 있습니다.
 * 기본 값은 보이지 않음(false) 이며, JSColorPipe 객체는 예외적으로 보임 상태를 유지합니다.
 * void setViewInTransparency(bool _set)
   * Class : JSLayer
   * Parameter
     * _set(bool) : 보이기 여부(true 보임 / false 보이지 않음)
   ``` javascript
   layer.setViewInTransparency(true);
   ```
 * bool getViewInTransparency();
   * Class : JSLayer
   * Return
     * 보임 설정 여부(bool)
   ``` javascript
   var visible = layer.getViewInTransparency();
   ```

2. JSPolygon의 Union mode 오류 수정 (https://github.com/EgisCorp/XDWorld/issues/478)

- JSPolygon에 Union mode 설정 후 RTT 적용이 되지 않는 점을 수정하였습니다.

3. 라인 효과 추가 및 정리

 - 라인 타입에 따른 옵션 및 매개변수 구조를 보다 사용하기 쉽도록 수정하였습니다.
 - 변경 사항
   - type: 기존 숫자로 입력하는 방식에서 Module.BLING (type: NORMAL, OUTLINE, GLOW, ARROW, DASH, FIRE, BLING, WARNING)등의 상수로 정의하도록 변경되었습니다.
   - animation, loopcount 속성을 추가하여 가시화 효과(type)에 따라 애니메이션 효과가 적용되도록 변경되었습니다.
 - 라인 크기를 고정시키는 옵션을 추가하였습니다.
 ```javascript
 [기존방식]
 let data = {
   coordinates: coordinates,
   type: 0,						// Solid line creation
   union: false,						// Terrain union status
   depth: true,						// Object overlap status
   color: new Module.JSColor(255, 255, 0, 0),		// ARGB
   width: 1,						// Line width
 };

 [변경된 방식]
 let data = {
   coordinates: coordinates,
   type: Module.BLING,					// Solid line creation
   union: false,						// Terrain union status
   depth: true,						// Object overlap status
   color: new Module.JSColor(255, 255, 0, 0),		// ARGB
   width: 1,						// Line width
   animation: true,					// Animation
   sizefix: true,						// size fixed
   loopcount: 1						// Animation loop count
 };
 ```

4. POI 가시화 오류 수정

 - 카메라 영역을 벗어날 경우, POI가 화면에서 사라지는 오류를 수정하였습니다.
 - 이제부터 영역을 벗어나면 POI 높이를 조절하여 화면 내부에서 볼 수 있도록 변경됩니다.

5. 빌보드 회전 타입 추가

 * 아래 이미지와 같이 지면과 수평한 빌보드의 회전 타입이 추가되었습니다.
   ![Image](https://github.com/user-attachments/assets/4002a632-4efe-4ba7-8bec-9382c1402d48)
 * JSBillboard의 setRotationMode API를 통해 mode 2번을 선택하시면 적용하실 수 있습니다.
   ``` javascript
   billboard.setRotationMode(2);
   ```

6. 마우스 조작 이벤트 버튼 설정 기능 추가

 * 마우스 버튼을 통해 지도 조작(이동, 회전, 줌) 동작에 사용할 버튼을 설정할 수 있도록 하는 기능이 추가되었습니다.  
 * `setMouseControlEvent`를 통해 조작 타입별 버튼을 설정할 수 있으며, `getMouseControlEvent`로 현재 설정된 버튼 값을 조회할 수 있습니다.  
 * 조작 타입은 `"translate"`, `"rotate"`, `"zoom"` 중 하나이며, 버튼 값은 0(좌클릭), 1(휠클릭), 2(우클릭) 중 하나입니다.  
 * `bool setMouseControlEvent(string type, int button)`  
   * Class : JSControl  
   * Parameter  
     * `type` (string) : 조작 타입 ("translate", "rotate", "zoom")  
     * `button` (int) : 마우스 버튼 값 (0: 좌클릭, 1: 휠클릭, 2: 우클릭)  
   * Return  
     * 설정 성공 여부 (bool)  
   ```javascript
   JSControl.setMouseControlEvent("rotate", 2);  // 회전을 우클릭으로 설정
   ```
 * `int getMouseControlEvent(string type)`  
   * Class : JSControl  
   * Parameter  
     * `type` (string) : 조작 타입 ("translate", "rotate", "zoom")  
   * Return  
     * 해당 타입의 현재 마우스 버튼 값 (int)  
   ```javascript
   var zoomButton = JSControl.getMouseControlEvent("zoom");
   ```

2.12.3 (2025/03/17)

  • XDServer의 POI 레이어 서비스에서 데이터 처리중 발생하는 오류를 수정하였습니다.

    • 이슈 : https://github.com/EgisCorp/XDWorld/issues/475

2.12.2 (2025/03/12)

  • JSOption::setMaxRequestQueueSize() API 추가

    • 데이터 요청 큐의 크기(기본값은 5)를 조절하는 setMaxRequestQueueSize()가 추가되었습니다.

      Module.getOption().setMaxRequestQueueSize(20);
      • 매개변수: 변경할 요청 큐의 크기(number)

  • 3D 서비스 모델 요청시 처리 성능이 향상되었습니다.

2.12.1 (2025/03/11)

  • 이미지 레이어가 가시화되지 않는 오류를 수정하였습니다.

2.12.0 (2025/03/10)

1. POI 선택시 Text 위치 오류 수정

- POI 선택시 setTextMargin 이 Text 에 적용되지 않는 오류를 수정하였습니다.

2. 화면분할(Streo View) 모드에서 좌우 객체를 인식할 수 있도록 기능을 수정하였습니다.

3. Text 형태의 POI 선택 인식 및 선택 효과 추가

- 기존 POI처럼 Text도 선택과 선택 색상(picking color) 적용이 가능하도록 수정하였습니다.

4. 3DTiles B3DM 선택 오류를 수정하였습니다.

5. AutoMove 모드에서 카메라 회전 옵션 lock orientation 추가

- `AutoMove` 모드에서 카메라를 자유롭게 회전시킬 수 있도록, `lock orientation` 옵션이 추가되었습니다.
   - 활성화(기본값): 카메라가 항상 다음 경로의 위치를 바라봅니다.
   - 비활성화: 카메라를 1인칭 시점에서 회전시킬 수 있습니다(오른쪽 마우스 버튼 사용).
- 사용 방법
    ```Javascript
    // AutoMove 설정
    Module.getViewCamera().setAnimationSpeed(1);
    Module.getViewCamera().startAutoMove();
    Module.XDRenderData();

    // 비활성화 함으로써, 카메라 자유롭게 이동 가능
    Module.getViewCamera().setLockOrientationAutoMove(false);
    ```
  - 자세한 사용 방법은 [샌드박스 샘플](https://sandbox.egiscloud.com/code/main.do?id=camera_move_path_visualize)을 확인해주시기 바랍니다.

6. 서비스 레이어 범위 제한 옵션 boundaryLimit 추가

 - 서비스 레이어에서 오브젝트를 요청할 때, 요청하는 범위를 경도/위도로 제한할 수 있도록 `boundaryLimit` 옵션이 추가되었습니다.
   - 활성화: 기존 방식에서, 미리 지정해 놓은 범위에 포함되는 오브젝트만 호출합니다.
      - 활성화한 이후에도, `JSLayer::setLimitBoundary()` API를 사용하여 범위를 제한하여야 합니다.
   - 비활성화(기본값): 기존 방식과 동일하게 오브젝트를 호출합니다.
 - 사용 방법
    ```Javascript
      // 샌드박스에서 제공하는 
      let layer = Module.getTileLayerList().createXDServerLayer({
        url : "https://xdworld.vworld.kr",
        servername : "XDServer3d",
        name : "facility_build",
        type : 9,
        minLevel : 0,
        maxLevel : 15
      });

      // Json 형태의 매개변수로 범위 지정
      layer.setLimitBoundary({
        boundary: {
          min: [129.125, 35.161],		// Lower left
          max: [129.141, 35.168]		// Upper right
        }
      });

      layer.boundaryLimit = true;   // 옵션 활성화
    ```
   - 자세한 사용 방법은 [샌드박스 샘플](https://sandbox.egiscloud.com/code/main.do?id=layer_request_boundary)을 확인해주시기 바랍니다.

2.11.2 (2025/02/24)

  • 3DTiles B3DM 피킹이 제대로 되지 않던 오류를 수정하였습니다.

2.11.1 (2025/02/17)

  • 다울지도 네트워크 요청시 발생하는 오류가 수정되었습니다.

2.11.0 (2025/02/10)

1. 3DTiles 높이 오프셋 옵션 추가

 - `import3DTiles()`에 높이 오프셋(단위 m)를 설정할 수 있는 옵션 `offsetZ`가 추가되었습니다.
 - 자세한 사용법은 아래 예시를 확인해주시기 바랍니다.
   ```javascript
   var pLayerList = new Module.JSLayerList(true);
   if(pLayerList==null) return;

   var pLayer = pLayerList.nameAtLayer("Layer3DTiles");
   if(pLayer==null)
   {
     pLayer = pLayerList.createLayer("Layer3DTiles", Module.ELT_3DTILES);
   }
   pLayer.import3DTiles({
     url : _strURL,
     autoMove : true,
     offsetZ : _fOffsetZ,  // 높이 오프셋. 단위 m
   });
   ```

2. 성절토 바닥/옆면 타일링 텍스쳐 설정 API 추가

 * 성절토 바닥 텍스쳐 설정 시 텍스쳐 반복 출력(타일링)이 가능하도록 API가 추가되었습니다.
 * API 설정 시 1.0보다 큰 값을 n값을 입력하면 설정한 텍스쳐가 n번 반복 출력됩니다.
 * API 호출 이후 생성되는 성절토 객체에 해당 값이 적용됩니다.
 * 성절토 바닥면 텍스쳐 설정
   * bool setBottomTextureTilingScale(float u, float v)
     * class : JSEditTerrain
     * parameter
       * u : 가로 반복 u 좌표
       * v : 세로 반복 v 좌표 
  * 성절토 옆면 텍스쳐 설정
    * bool setSlopeTextureTilingScale(float u, float v)
      * class : JSEditTerrain
      * parameter
        * u : 가로 반복 u 좌표
        * v : 세로 반복 v 좌표 
 ``` javascript
 Module.getEditTerrain().setBottomTextureTilingScale(10.0, 10.0);
 Module.getEditTerrain().setSlopeTextureTilingScale(10.0, 10.0);
 ```

3. 비디오 객체 오류 수정

* 초기화 시 계속적으로 Hls 네트워크 요청하는 오류가 수정되었습니다.
* 뒷배경 on/off 기능이 추가되었습니다. [비디오 객체](https://sandbox.egiscloud.com/code/main.do?id=object_video_placement)

4. JSLayer::setObjectVisibleWithBoundary() API 추가

  • 매개변수로 전달한 좌표를 벗어날 경우, 오브젝트를 그리지 않도록 설정하는 함수를 추가하였습니다.

  • 함수 정보

    • boolean setObjectVisibleWithBoundary(number minLon, number maxLon, number minLat, number maxLat)

    • class : JSLayer

    • parameter

      • minLon: 최소 경도

      • maxLon: 최대 경도

      • minLat : 최소 위도

      • maxLat : 최대 위도

     // 레이어 및 오브젝트 생성
     sampleLayer.setObjectVisibleWithBoundary(129.5, 130, 35.16, 35.19);

2.10.2 (2025/01/21)

1. 3DTiles 포맷 처리 기능 안정화

  • 3DTiles 파일 처리 속도를 개선하였습니다.

  • 로딩한 모델이 깜박이는 오류를 수정하였습니다.

2. 성절토 바닥 타일링 텍스처 설정 API 추가

  • 성절토 바닥 텍스쳐 설정 시 텍스쳐 반복 출력(타일링)이 가능하도록 API가 추가되었습니다.

  • API 설정 시 1.0보다 큰 값을 n값을 입력하면 설정한 텍스쳐가 n번 반복 출력됩니다.

  • API 호출 이후 생성되는 성절토 객체에 해당 값이 적용됩니다.

  • bool setBottomTextureTilingScale(float u, float v)

    • class : JSEditTerrain

    • parameter

    • u : 가로 반복 u 좌표

    • v : 세로 반복 v 좌표 javascript Module.getEditTerrain().setBottomTextureTilingScale(10.0, 10.0);

3. JSPolygon 텍스처 오류 수정

  • JSpolygon 객체에 반투명한 텍스처가 제대로 적용되지 않는 오류를 수정하였습니다.

2.10.1 (2025/01/03)

1. createTMCoordPlane() 기능 개선

- `createTMCoordPlane()` API의 매개변수 정의 방식이 수정되었습니다. 자세한 사항은 아래 문서를 확인하여 주시기 바랍니다.
    - 변경된 양식
        ```Javascript
        JSPolygon.createTMCoordPlane({
            llcorner : {
              coordCode : [좌표계코드, 필수],
              x : [좌하단 X 좌표, 필수],
              y : [좌하단 Y 좌표, 필수]
            },
            grid : {
              col : [그리드 가로 총수, 필수],
              row : [그리드 세로 총수, 필수],
              cellSize : [그리드 셀의 가로 세로 크기, 필수],
              ratioMode : [New 배율모드 사용 여부 0 - 기존 gab방식, 1 - 배율모드사용, 선택],
              xSplit : [ New 가로 분할 배율, ratioMode  1일때 필수],
              ySplit : [ New 세로 분할 배율, ratioMode  1일때 필수]
            }
          });
        ```
    - 사용 예시
        ```Javascript
        polygon.createTMCoordPlane({
          llcorner : {
            coordCode : 20,
            x : 216701.99445382116 ,
            y : 220328.8122727003
          },
          grid : {
            col : 644,
            row : 585,
            cellSize : 10,
            ratioMode : 1,
            xSplit : 10,
            ySplit : 10
          }
        });
        ```

2.10.0 (2024/12/27)

1. Stereo View 모드의 로컬 레이어 오류 수정

  • Stereo View 모드에서 로컬 레이어를 사용할 경우, POI가 왼쪽 화면에만 그려지는 오류를 수정하였습니다.

2.9.2 (2024/12/16)

1. Real3D 텍스처 요청 개수 제한 API 추가

  • Real3D에서 최대 텍스처 요청 개수를 제한할 수 있도록, JSOption::setMaxRequestTextureQueueSize() API가 추가되었습니다.

    Name
    Type
    Description

    maxTextureSize

    number

    텍스처를 요청하는 최대 개수(1~20개).

    Module.getOption().setMaxRequestTextureQueueSize(20); // 20개의 텍스쳐 요청

2. Real3D 텍스처 레벨 고정 API 추가

  • Real3D에서 요청하는 텍스처 레벨을 고정할 수 있도록, JSMap::fixedTextureLevel() API가 추가되었습니다.

    Name
    Type
    Description

    level

    number

    텍스처 요청하는 레벨(0~5).

    Module.getMap().fixedTextureLevel(0); // 고정레벨 지정

2.9.1 (2024/12/06)

1. glTF 모델의 회전 및 크기 조절 기능 추가

  • glTF 모델을 유연하게 사용할 수 있도록, 회전과 크기 조절 기능이 추가되었습니다.

  • 회전의 경우 XYZ축을 기준으로 회전 각도를 조절할 수 있습니다.

    var polygon = Module.createGLTF("GLTF_Object");
    polygon.loadFile({
        url: url,
        type: "glb",
        position: pos,
        rotate: [0, 90, 0], // XYZ 축 방향 회적 각도(Degree)
        scale: [1.0, 10.0, 1.0], // XYZ축 방향 스케일 변경. (1.0= 원래 크기)
        rebuild: true,
    });

2. split view 하이브리드 가시화 기능 추가

  • 하이브리드 모드가 split view에서도 정상적으로 보일 수 있도록 기능을 추가하였습니다.

3. stereo view/split view 모드 오브젝트 렌더링 오류 수정

  • stereo view/split view 모드에서, 반투명한 상태의 오브젝트 출력이 제대로 되지 않는 오류를 수정하였습니다.

4. JSPolygon::setHeightByType() API 추가

  • type에 따라 평면 폴리곤의 윗면을 생성하는 API를 추가하였습니다.

    Name
    Type
    Description

    heightOrAltitude

    number

    버텍스에 적용할 높이 혹은 고도.

    0일 경우: 높이로 사용.

    1일 경우: 고도로 사용.

    type

    number

    윗면 생성 방식 설정.

    0일 경우: 각 밑면 버텍스에서 height만큼 높인 윗면 생성.

    1일 경우: 균일한 고도의 평평한 윗면 생성.

    var polygon = Module.createPolygon("POLYGON");
    var vertex = new Module.JSVec3Array();
    var part = new Module.Collection();
    
    for (var i = 0; i < _vertex.length; i++) {
        for (var j = 0; j < _vertex[i].length; j++) {
            vertex.push(_vertex[i][j]);
        }
        part.add(_vertex[i].length);
    }
    polygon.setPartCoordinates(vertex, part);
    
    // Set as a polyhedron polygon with height
    // type == 0
    //polygon.setHeightByType(80, 0);
    // type == 1
    polygon.setHeightByType(120, 1);
    
    //...

2.9.0 (2024/11/29)

1. Inspector 기능 항목 추가

  • 기존 Inspector 기능에서, 지형 데이터(dem/image)를 요청하는 대기열의 크기를 확인할 수 있도록 수정하였습니다.

  • 자세한 사용법은 샌드박스 샘플을 참고해주시기 바랍니다.

2.8.4_hotfix (2024/11/22)

1. 깜박임 오류 수정

  • 특정한 상황에서, 지도가 제대로 그려지지 않고 깜박이는 오류를 수정하였습니다.

2. 건물 simple mode 옵션 추가

  • 그라데이션 모드(아래에서부터 위로 점점 밝아지는 음영 효과)가 추가 되었습니다.

  • Light 방향을 조절할 수 있는 옵션이 추가되었습니다.

3. HTMLObject의 element 속성 추가

  • HTMLObject.element 프로퍼티가 추가되었습니다.

  • 자세한 사용법은 메뉴얼을 참고해주시기 바랍니다.

2.8.3_hotfix (2024/11/15)

1. JSPolygon.setWaterEffect() 오류 수정

  • JSPolygon에서 setWaterEffect()를 호출시, 검은 배경이 나타나는 오류를 수정하였습니다.

2.8.2_hotfix (2024/11/08)

1. glTF 애니메이션 오류 수정

  • 특정 glTF 모델의 애니메이션이 정상적으로 재생되지 않는 오류를 해결하였습니다.

2. JSLayerobject_ahead 속성 추가

  • 레이어 차원에서 object_ahead 옵션을 관리할 수 있도록, JSLayer의 속성이 추가되었습니다.

  • 사용법

    1. 먼저 해당 옵션을 사용하기 위해, JSOption.object_aheadtrue로 설정하여야 합니다.

    2. JSOptionJSLayerobject_ahead 가 모두 true일 경우, 해당 레이어에 속한 3d point 오브젝트에 옵션이 적용됩니다.

    • JSOptionobject_aheadtrue여도 JSLayerobject_aheadfalse이면 옵션이 적용되지 않습니다.

  • object_ahead 란?

    • (카메라 기준)지형 및 시설물(건물)이 3d point 오브젝트보다 가까이 있을 경우, 오브젝트가 가려지도록 하는 옵션

    • 자세한 사용법은 링크를 참고해주시기 바랍니다.

  • 주의 사항

    • JSLayer.object_ahead 속성은 ELT_3DPOINT 레이어에만 적용됩니다. 다른 속성의 레이어에서는 JSOption.object_ahead을 사용해주시기 바랍니다.

2.8.1_hotfix (2024/11/01)

1. JSTraceTarget의 glTF 애니메이션 포맷 지원

  • JSTraceTarget에서 애니메이션이 포함된 glTF 포맷을 지원하도록 기능이 확장되었습니다.

2. Real3DPack의 객체 버전 확장 적용

  • Real3DPack 레이어가 다양한 버전의 객체를 사용할 수 있도록 기능이 확장되었습니다.

2.8.0 (2024/10/25)

1. 지형과 알파 값이 있는 객체 간의 렌더링 순서 정리

  • 지형과 알파(투명) 값이 존재하는 객체들과의 가시화가 어색하지 않도록, 렌더링 순서를 변경하였습니다.

2. 파이프 색상 변경 오류 수정

  • 간소화 상태에서 파이프 색상 변경 시 색상 값이 정상적으로 적용되지 않는 현상을 수정하였습니다.

3. 외부 폰트 기반 POI Text 이미지 생성시 발생하는 오류 수정

  • Text 이미지 생성이 정상적으로 작동되지 않는 현상을 수정하였습니다.

4. 소형 시설물의 LOD Texture 미적용 오류 수정

  • 카메라 거리에 따른 시설물 LOD 변경 기능이 동작되지 않는 현상을 수정하였습니다.

5. JSPolygon::createVerticalGrid() API 추가

  • 수직 평면 그리드 객체를 생성하는 API가 추가되었습니다.

  • 파라미터: 레이어명, 좌하단, 우상단, 새로 개수, 가로 개수

  • 자세한 사용법은 링크를 참고해주시기 바랍니다.

6. JSFigure::getRectInfo() API 추가

  • 생성된 Figure 객체에서 4개의 꼭지점을 반환합니다.

  • 자세한 사용법은 링크를 참고해주시기 바랍니다.

2.6.1 (2024/09/03)

1. 배경지도 오류 수정

  • 0레벨 로딩시 텍스쳐 깨지는 현상 발생하여 수정하였습니다.

2.6.0 (2024/08/30)

1. 지형 쉐이더 컴파일 오류 처리 기능 추가

  • 지형 쉐이더를 컴파일할 경우, 디바이스별로 쉐이더 컴파일 조건이 다르므로 실패하는 경우가 있습니다.

  • 이를 방지하기 위해, 컴파일 실패시 조건 수정후 다시 컴파일하는 기능이 추가되었습니다.

2. 멀티뷰(화면 분할) 모드 오류 수정

  • 멀티뷰 모드에서 지형이 깜박이던 현상을 수정했습니다.

3. 멀티뷰(화면 분할) 모드 레이어 가시화 기능 추가

  • 멀티뷰 모드에서, RTT/하이브리드 레이어의 가시화를 제어할 수 있는 기능이 추가되었습니다.

4. POI 가시화 개선

  • POI 레벨 범위(시작, 끝)에 따른 가시화 구조를 수정하였습니다.

  • ETLT_USER_LAYER를 통해 생성한 POI에 대한 object_ahead 옵션 설정에 따른 가시화 기능을 수정하였습니다.

5. Base Map 기능에서, Bing Map(전체)/OSM(Terrain) 항목 서비스 종료

  • Base Map에서, Bing Map과 Open Street Map(terrain)에 대한 서비스를 종료하였습니다.

  • 자세한 사항은 링크를 참고해주시기 바랍니다.

2.5.1 (2024/08/09)

1. JSHTMLObject 이동 기능 추가

  • JSHTMLObject 내부 변수 "position"을 통해 현재 위치와, 변경 위치 설정하는 변수가 추가되었습니다.

    // Get
    let position = htmlObject.position;
    // Set
    let position = new Module.JSVector3D(lon, lat, alt);
    htmlObject.position = position;
  • 입력, 출력은 경위도 값이 기준입니다.

2. POI 가시범위 API 기능 개선 확장

  • JSPoint에 개선된 가시범위 설정 API가 추가되었습니다.

    // 가시 범위 설정 예시
    poi.setRange({
        enable: true, // 가시 범위 사용 여부 setVisibleRange의 bEnable 파라메터와 동일
        min: 1.0, // 가시 범위 최소 범위 setVisibleRange의 dMin 파라메터와 동일
        max: 1000.0, // 가시 범위 최대 범위 setVisibleRange의 dMax 파라메터와 동일
        textMin: 1.0, // 가시 범위 텍스트 최소 범위 min 과 같거나 커야함
        textMax: 300.0, // 가시 범위 텍스트 최대 범위 max 과 같거나 작아야함
    });
  • 기존 POI 객체 표현범위 설정 (Icon 기준)에서 Text에 대한 추가 표현 범위를 설정합니다.

3. JSPipe 흐름 화살표 기능 개선

  • 평면 형태의 화살표를 3차원 입체 구조로 개선하였습니다.

  • 일부 지역에서 화살표 생성 시 방향이 올바르게 정렬되지 않는 현상을 수정하였습니다.

  • 파이프 지점 높낮이에 따라 화살표의 틸트 각도가 함께 적용되도록 수정하였습니다.

4. face 데이터로 JSPolygon을 생성하는 'JSPolygon.createWithFaces()' API 추가

  • 사용자가 정의한 face 데이터를 기반으로 JSPolygon을 생성하는 기능이 추가되었습니다.

  • 사용자는 형식에 맞춘 JSON 데이터를 파라메터로 전달함으로써, JSPolygon을 생성할 수 있습니다.

  • 자세한 사용법은 샌드박스 링크를 참고하시기 바랍니다.

let parameter = {
	upVector: /*업벡터 좌표축*/,
	cullMode: /*버텍스 정의 방향*/,
	position: /*모델 중심 위치*/,
	moveOffset: /*위치 오프셋(세부 조정)*/,
	faceInfo: [
		{
			vertex: /*버텍스 위치*/,
			matrix: /*변환(4x4 행렬)*/,
			indexVertex: /*버텍스 인덱스*/,
			indexUV: /*텍스처 좌표 인덱스*/,
			uv: /*실제 텍스처 좌표*/,
			normal: /*노멀 벡터*/,
			color: /*색상*/
		}
	]
}
polygon.createWithFaces(parameter);

2.5.0 (2024/7/26)

1. 웹 워커 기능 개선

  • 기능 개선 및 파일 용량을 감소하여 기능 개선하였습니다.

2. 도로 시설물 생성 기능 개선

  • 도로 시설물 중 교량의 교각이 일정 높이 이하인 부분은 생성이 되지 않도록 예외처리 단계가 추가되었습니다.

3. 빌보드 수직선 옵션 추가

  • 빌보드 중심을 기준으로, 지면까지의 수직선을 생성 및 수정하는 API가 추가되었습니다.

    parameter = {
        visible: true, // 가시화 여부(기본값: false)
        width: 10.0, // 수직선 두께(기본값: 1.0)
        color: JSColor(255, 15, 100, 200), // 수직선 색상(기본값: JSColor(255, 255, 255, 255))
        altitude: 30.0, // 수직선 끝점 고도(기본값: 0)
    };
    billboard.setVerticalLine(parameter);
  • 성공적으로 생성/수정하였을 경우 true를 반환합니다.

  • API의 자세한 사용법은 샌드박스 링크를 확인해주시기 바랍니다.

4. 지형의 0레벨 지구본 위성영상 자체 포함

  • 0레벨에 대한 지구본 위성영상을 자체 포함하도록 적용 되었습니다.

  • 지도 서버에 연결이 정상적이 않아도 지구본은 기본적으로 구성됩니다.

  • 0 레벨 요청을 실패하여 반복적 네트워크 요청을 처리하지 않습니다.

  • 엔진의 파일용량이 소폭 증가합니다.

2.4.0 (2024/6/28)

1. 화면 분할 시 잔상이 남는 현상 수정

  • 지형 투명도 조절과 함께 화면 분할 기능 사용 시 분할 화면에 잔상이 남는 현상을 수정하였습니다.

  • 화면 분할 기능 사용 시 레이어 배치 방향이 반대로 보이는 점을 확인하여 수정하였습니다.

2. Camera Quake의 진동 오류 수정

  • Camera Quake(카메라 흔들림)기능에서, 진동 주기가 초단위로 적용되는 오류를 수정하였습니다.

3. JSFlowPolygon 객체 색상 설정 오류 수정

  • create API 실행 전 color 속성 설정 시 값이 정상적으로 반영되지 않는 현상을 수정하였습니다.

4. 전광판, 비디오 객체 기능 개선

  • 사용자 편의성을 위해 객체 생성 이후의 기능들 엔진 내부에 삽입 및 속도개선되었습니다.

  • 기존 비디오 텍스쳐 관련 기능은 2024년까지 지원합니다.

  • 새로운 사용법은 비디오텍스쳐를 참고하시기 바랍니다.

5. WMS 로딩 방식 선택

  • 사용자의 통신 환경과 WMS 및 하이브리드 상태에 따라 선택 가능하도록 API가 추가되었습니다.

// Default : 0
//Module.getOption().setHybridRenderType(0);   // 기존과 동일
Module.getOption().setHybridRenderType(1); // 변경된 순서에 따라 바로 반영

6. 장해물 판별 기능 추가

  • 카메라와 JSPoint, JSHTMLObject 객체 사이에 장해물(지형, 시설물) 존재 시 가시화 유무를 설정하는 변수를 추가 하였습니다.

Module.getOption().object_ahead = 0; 기존 방식(장해물 미판정)
Module.getOption().object_ahead = 1; 장해물에 따른 가시화 설정

7. 카메라 좌/우 이동 API 추가

  • 카메라 이동 함수 moveLeftRight가 추가되었습니다.

  • 지정한 값 만큼 카메라가 좌/우 방향으로 이동합니다.

Module.getViewCamera().moveLeftRight(0.01);
Module.getViewCamera().moveLeftRight(-0.01);

8. 레이어 화면 분할 렌더링 기능 오류 수정

  • 화면 분할 기능 사용 시 좌/우 방향이 반대로 적용되는 현상을 수정하였습니다.

  • 화면 분할 후 특정 화면에서 화면의 잔상이 남는 현상을 수정하였습니다 이슈 #401

2.3.1 (2024/5/31)

1. (중요)glTF 최적화(WebWorker)

  • glTF 포맷과 관련하여, WebWorker가 업데이트 되었습니다.

  • 업데이트된 WebWorker 빌드 파일의 사용을 권장합니다.

2. JSColorGrid3D 오브젝트 속성 반환 함수 추가

  • JSColorGrid3D 오브젝트의 속성 반환 함수가 추가되었습니다.

  • [getCellBox] 인덱스에 해당하는 셀의 박스 좌표 정보를 반환합니다.

    • 박스 좌표는 상단/하단, 좌/우, 위/아래로 구분되는 좌표 8개를 반환합니다.

    • 반환 되는 박스의 좌표 속성 값의 순서는 아래와 같습니다.

      • 0 : upLeftTop

      • 1 : upRightTop

      • 2 : upRightBottom

      • 3 : upLeftBottom

      • 4 : downLeftTop

      • 5 : downRightTop

      • 6 : downRightBottom

      • 7 : downLeftBottom

    var cellBox = grid.getCellBox(20, 12);
  • [getCellHeight] 인덱스에 해당하는 셀의 높이 값을 반환합니다.

    var height = grid.getCellHeight(20, 12);
  • [getCellWidthCount] 그리드의 가로 셀 수를 반환합니다.

    var widthCellCount = grid.getCellWidthCount();
  • [getCellHeightCount] 그리드의 세로 셀 수를 반환합니다.

    var heightCellCount = grid.getCellHeightCount();

2.3.0 (2024/5/24)

1. JSColorGrid 오브젝트 반환 기능 추가

  • JSLayer의 오브젝트 반환 시 JSColorGrid 오브젝트도 반환 가능하도록 기능을 추가하였습니다.

2. 수인한도분석 진행률 반환 기능 추가

  • CJSAnalysisGridShadow::prograss 분석 진행률을 반환하는 callback 함수를 추가하였습니다.

3. 수인한도분석 배척격자 오류 수정

  • 배척격자가 그림자를 생성하거나, 선택이 되지 않는 오류가 수정되었습니다.

4. JSPolygon으로 고스트 심볼 생성하는 기능 추가

  • 고스트 심볼을 생성할 때 외부에서 모델 파일을 입력해주는 대신, 미리 생성한 JSPolygon으로 정의가 가능하도록 JSGhostSymbolMap.insert()polygon인자를 추가하였습니다.

  • 자세한 사용법은 샌드박스 - Ghostsymbol(Polygon)을 참고해주시기 바랍니다.

2.2.2 (2024/5/3)

1. WMS 오류 해결

  • WMS 기능을 사용할 때, 깜박거리는 현상이 수정되었습니다.

Last updated

Was this helpful?