Developers - http://www.egiskorea.com/
- [Korean] https://egiscorp.gitbook.io/xdworld-webgl-manual
- [English] https://egiscorp.gitbook.io/xdworld_global_manual
Demos & Sandbox - https://sandbox.egiscloud.com
XDWORLD ENGINE, a 3D GIS engine based on WebGL
- 웹 표준 기술 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
- 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.)
- 정기 배포 날짜는 매월 첫째 주 월요일입니다. 배포 일정이 변경될 경우, 현재 섹션에서 변동 사항을 확인하실 수 있습니다.
Caution
Important
CDN 버전 정책이 변경되었습니다.
기존 latest(안정화 버전)는 stable로 대체되었습니다.
stable: 안정화된 정기 배포 버전latest: 최신 배포 버전 (핫픽스 포함)
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)사용 시 드래그 동작에서 가시권이 생성되는 문제를 수정하였습니다.- 단순 클릭 시에만 가시권이 생성되도록 동작을 개선하였습니다.
- 사용자 레이어 객체로 시점 이동이 간헐적으로 동작하지 않는 문제를 수정하였습니다.
- 사용자 레이어 객체로 시점 이동 시 바라보는 방향이 올바르게 설정되지 않는 문제를 수정하였습니다.
MML_ANALYS_AREA마우스 모드에서 면적 측정 시 폴리곤 및 외곽선이 지형에 결합되지 않는 문제를 수정하였습니다.
- 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;
}
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.positionandmodel.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 state3. 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.
- 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.
- Fixed an issue where the polygon and outline were not clamped to the terrain when performing area measurements in
MML_ANALYS_AREAmouse mode.
- Added support for loading polygon data from a blob via the
dataproperty in theJSPolygon::loadFileAPI.
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;
}
