국토교통부 연속지적도 좌표계 변경 아주! 칭찬해!

짝짝짝! 참 잘했어요!

국토교통부에서 제공하는 연속지적도의 좌표계에서 사용하는 타원체를 Bessel1841에서 GRS80으로 변경된 것을 확인했습니다. 정확도면에서 어떻게 향상되었는지 기존의 다른 좌표계로 된 건물을 지적도와 함께 중첩해 보았습니다.

먼저 예전 Bessel1841 타원체를 사용하는 지적도와 UTM-K 좌표계인 건물을 중첩해 보면 다음과 같습니다.

확인해 보면 지적도의 필지와 건물이 상당히 어긋납니다. 늘 그래왔고 그려러니…. 했죠. 이제 최근 변경된 지적도와 건물 중첩을 보겠습니다.

완벽해! 드디어 해냈구나! 근데.. 왜 이렇게 늦었니? 아무튼… 이제 지적도에 대한 좌표계 이슈는 해결된 것 같습니다.

GDAL API를 JAVA에서 사용하기 (Windows 환경)

#1 컴파일된 GDAL 다운로드

다음 사이트를 통해 미리 컴파일된 GDAL을 내려 받는다. MSVC2022로 컴파일된 x64를 선택한 뒤 release-1930-x64-gdal-3-5-3-mapserver-8-0-0.zip를 다운로드 받았음 : https://www.gisinternals.com/release.php

#2 GDAL dll의 PATH 지정

내려받은 파일의 압축을 풀면 bin 폴더에 gdal에 대해 컴파일된 dll 파일이 존재하는데, 이 bin 폴더를 path에 지정한다. (gdalalljni.dll에서 이 폴더의 dll을 참조함)

#3 이클립스에서 라이브러리 참조 및 glue dll 참조 설정

bin/gdal/java 폴더에는 gdal.jar와 gdal에 대한 glue dll인 gdalalljni.dll이 존재하는 것을 확인할 수 있다. 이클립스에서 프로젝트를 생성하고 라이브러리로 gdal.jar를 참조한다. 그리고 gdal.jar가 참조하는 gdalalljni.dll 파일을 JRE가 파악할 수 있도록 이 파일의 경로(d:/path1/path2 라고 하자)를 VM arguments에 -Djava.library.path=d:/path1/path2 를 입력한다. (만약 path에 이 경로가 지정되어 있다면 생략해도 됨)

#4 코드 테스트

테스트 코드는 다음과 같다.

package tstGDAL;

import org.gdal.gdal.Dataset;
import org.gdal.gdal.gdal;
import org.gdal.gdalconst.gdalconstConstants;

public class MainEntry {
    Dataset hDataset;
    int numBands;
	 
    public MainEntry(String filename) {
        gdal.AllRegister();
        hDataset = gdal.Open(filename, gdalconstConstants.GA_ReadOnly);
        this.numBands = hDataset.getRasterCount();
    }
	 
    public static void main(String[] args) {
        String path = "d:/sample.tif";
        MainEntry instance = new MainEntry(path);
        System.out.println(instance.numBands);
    }
}

[오프라인강좌 소개] three.js와 blender를 이용한 3D 인터렉티브 웹 개발

안녕하세요, GIS Developer 김형준입니다. 오는 10월 24일에서 26일 판교에서 3D 그래픽 웹 개발을 위한 three.js 라이브러리와 3차원 모델링 제작툴인 Blender를 활용한 3차원 인터렉티브 웹 개발에 대한 오프라인 강좌를 진행합니다. 소개 영상은 아래와 같습니다.

이번 강좌는 한국메타버스산업협회에서 주관하는 강좌로 교육비는 무료이며 수강신청은 아래 URL을 통해 가능합니다.

https://www.metaverse-campus.kr/lecture/viewAll.do?pageIndex=1&menu_idx=50&lecIdx=17&proIdx=147

참여 인원수에 제한이 있으므로 빠른 신청 부탁드리겠습니다. 감사합니다.

three.js로 웹에서 멋진 3D 장면 연출하기

three.js를 이용하여 웹에서.. 몽환적인 장면을 만들어 보는 코드를 작성해 보았습니다. 결과는 다음 동영상과 같습니다.

복잡한 Shader를 사용하지 않았습니다. three.js의 기본적인 API만을 사용했습니다.

또 다른 한가지 예입니다. 피닉스 한마리가 날아오르는 장면을 연출한 것인데요. 처음엔 생기가 없지만 조금씩 높이 날아 오를수록 몸이 빛나기 시작합니다.

조만간 제 Youtube 채널(GIS DEVELOPER)에 위 2가지에 예제를 three.js로 어떻게 만드는지 그 내용을 업로드할 예정입니다.