Skip to content

Latest commit

 

History

653 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EgisLogo

Documentation

Introduction

XDWORLD ENGINE, a 3D GIS engine based on WebGL

pd_3_img

Features

  • 웹 표준 기술 HTML5, WebGL 기반 3D 렌더링 지원
  • 멀티 OS, 브라우저, No-Plugin 지원
  • 3차원 공간데이터 웹 개발자를 위한 다양한 Javascript 웹 API 지원
  • 거리, 면적 체적 계산 등 기본적인 3차원 분석기능 제공
  • 다양한 도시계획 시뮬레이션 및 분석 기능 제공
  • 공간정보 오픈플랫폼(V World) 데이터 서비스 가능

  • Supports 3D rendering based on web standard technologies HTML5 and WebGL
  • Multi OS, browser, and No-Plugin support
  • Provides a variety of JavaScript web APIs for 3D spatial data web developers
  • Offers basic 3D analysis functions such as distance, area, and volume calculations
  • Provides various urban planning simulation and analysis features
  • Capable of spatial information open platform (V World) data services

Fields

  • GIS, UIS, LBS, 시설물관리, 조감도, 입지분석, 지형분석, 도시계획, 건축현장관리, 농지관리 등 (GIS, Urban Information Systems, Location-Based Services, Facility Management, Perspective Views, Site Analysis, Terrain Analysis, Urban Planning, Construction Site Management, and Agricultural Land Management.)

Update

  • 정기 배포 날짜는 매월 첫째 주 월요일입니다. 배포 일정이 변경될 경우, 현재 섹션에서 변동 사항을 확인하실 수 있습니다.

Caution

$\color{red}{\text{2.25.1 버전에서 worker 파일이 업데이트되었습니다.}}$
$\color{red}{\text{해당 버전 이상으로 업데이트 시 worker 업데이트가 필요합니다.}}$
$\color{red}{\text{XDWorldWorker.js 및 XDWorldWorker.wasm 파일을 엔진과 같이 배포된 파일로 교체해 주시기 바랍니다.}}$

$\color{red}{\text{The worker files have been updated in version 2.25.1.}}$
$\color{red}{\text{When updating to version 2.25.1 or later, a worker file update is required.}}$
$\color{red}{\text{Please replace XDWorldWorker.js and XDWorldWorker.wasm with the files distributed with the engine.}}$

Important

CDN 버전 정책이 변경되었습니다.

기존 latest(안정화 버전)는 stable로 대체되었습니다.

  • stable : 안정화된 정기 배포 버전
  • latest : 최신 배포 버전 (핫픽스 포함)

2.29.2 (2026/08/11)

1. GLTF 모델 이동 위치 정보 갱신 개선 (이슈 #580)

  • GLTF 모델을 Trace Target으로 설정하여 이동할 때 내부 Bounding Box 위치가 갱신되지 않는 문제를 수정하였습니다.
  • 이로 인해 model.position 및 model.getCenter()에서 실제 모델의 이동 위치가 정상적으로 반환되지 않는 문제를 수정하였습니다.

2. 2D 가시권 분석 결과 갱신 API 추가 (이슈 #581)

  • 레이어의 가시성 변경 후 기존 2D 가시권 분석 결과를 현재 레이어 상태를 기준으로 다시 계산할 수 있는 updateViewshed() API를 추가하였습니다.
buildingLayer.setVisible(false); // 레이어 가시성 변경
Module.getAnalysis().updateViewshed(); // 현재 레이어 상태 기준으로 가시권 재계산

3. 3D 가시권 생성 동작 개선 (이슈 #584)

  • setVFCreateClickMode(true) 사용 시 드래그 동작에서 가시권이 생성되는 문제를 수정하였습니다.
  • 단순 클릭 시에만 가시권이 생성되도록 동작을 개선하였습니다.

2.29.1 (2026/08/05)

1. 사용자 레이어 객체 시점 이동 기능 개선

  • 사용자 레이어 객체로 시점 이동이 간헐적으로 동작하지 않는 문제를 수정하였습니다.
  • 사용자 레이어 객체로 시점 이동 시 바라보는 방향이 올바르게 설정되지 않는 문제를 수정하였습니다.

2. 면적 측정 기능 개선

  • MML_ANALYS_AREA 마우스 모드에서 면적 측정 시 폴리곤 및 외곽선이 지형에 결합되지 않는 문제를 수정하였습니다.

2.29.0 (2026/08/03)

1. POI 텍스트 라벨링 및 아이콘 이미지 선명도 개선

2. JSPolygon blob 방식 처리 추가

  • JSPolygon::loadFile API에 data 속성을 통한 blob 처리 추가
async function load3DSa(_url, _position) {
    const response = await fetch(_url);
    if(response.ok == false) {
       throw new Error(
            `HTTP 오류: ${response.status} ${response.statusText}`
        );
    }
   const arrayBuffer = await response.arrayBuffer();
   let blob = new Uint8Array(arrayBuffer);
   // Create polygon layer
   var layerList = new Module.JSLayerList(true);
   var layer = layerList.createLayer("POLYGON_3DS_LAYER", Module.ELT_POLYHEDRON);
   var polygon = Module.createPolygon("POLYGON_3DS_LOAD");

   polygon.loadFile({
	type : "3ds",     // 3ds 포맷 명시
	position : _position,
	data : blob,      // fetch로 가져온 Uint8Array 버퍼
	align : "bottom",
	callback : function() {
		// Texture 로딩이 필요하면 기존방식 추가 처리 
		layer.addObject(polygon, 0);
	}
    });
    return polygon;
}

2.29.2 (2026/08/11)

1. Improved GLTF Model Position Updates (Issue #580)

  • Fixed an issue where the internal Bounding Box position was not updated when moving a GLTF model set as the Trace Target.
  • Fixed an issue where model.position and model.getCenter() did not return the actual position of the moved model.

2. Added API for Updating 2D Viewshed Analysis Results (Issue #581)

  • Added the updateViewshed() API to recalculate existing 2D viewshed analysis results based on the current layer visibility state after changing layer visibility.
buildingLayer.setVisible(false); // Change layer visibility
Module.getAnalysis().updateViewshed(); // Recalculate viewshed based on the current layer state

3. Improved 3D Viewshed Creation Behavior (Issue #584)

  • Fixed an issue where a viewshed was created during a drag operation when using setVFCreateClickMode(true).
  • Improved the behavior so that a viewshed is created only when the user performs a simple click.

2.29.1 (2026/08/05)

1. Improved Viewpoint Navigation for User Layer Objects

  • Fixed an issue where viewpoint navigation to user layer objects would intermittently fail.
  • Fixed an issue where the viewing direction was not set correctly when navigating to a user layer object.

2. Improved Area Measurement

  • Fixed an issue where the polygon and outline were not clamped to the terrain when performing area measurements in MML_ANALYS_AREA mouse mode.

2.29.0 (2026/08/03)

1. Improved Sharpness of POI Text Labels and Icon Images

2. Added Blob Support for JSPolygon

  • Added support for loading polygon data from a blob via the data property in the JSPolygon::loadFile API.
async function load3DSa(_url, _position) {
    const response = await fetch(_url);
    if(response.ok == false) {
       throw new Error(
            `HTTP Error: ${response.status} ${response.statusText}`
        );
    }

    const arrayBuffer = await response.arrayBuffer();
    let blob = new Uint8Array(arrayBuffer);

    // Create polygon layer
    var layerList = new Module.JSLayerList(true);
    var layer = layerList.createLayer("POLYGON_3DS_LAYER", Module.ELT_POLYHEDRON);
    var polygon = Module.createPolygon("POLYGON_3DS_LOAD");

    polygon.loadFile({
        type: "3ds",          // Specify the 3DS format
        position: _position,
        data: blob,           // Uint8Array buffer fetched via fetch()
        align: "bottom",
        callback: function() {
            // Add existing texture loading logic here if needed
            layer.addObject(polygon, 0);
        }
    });

    return polygon;
}

Running XDWorld with Vue.js

About

WebGL 기반 3D GIS 엔진

Resources

Stars

19 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages