VWorld의 지오코딩 API 사용 코드

VWorld에서 제공하는 지오코딩 OpenAPI는 하루에 최대 3만건까지 자유롭게 변환할 수 있습니다. 아래는 VWorld의 지오코딩 API를 사용하는 코드입니다.

async function geocoding(url) {
    const req = await fetch(url);
    return req.json();
}

async function doGeocoding(address) {
    const result = await geocoding("http://api.vworld.kr/req/address?service=address"
        + "&request=getcoord"
        + "&address=" + encodeURI(address) + "&type=road"
        + "&key=##09F585-13##-38##-##36-####6A0C####");

    console.log(result);
}

doGeocoding('서울시 성동구 아차산로7나길 18');

실행 결과는 JSON 형식으로 다음과 같이 콘솔에 표시됩니다.

VWorld의 지오코딩 API는 입력한 주소가 도로명 주소인지 지번 주소인지를 명확히 지정해줘야 합니다. 즉, 호출 URL에 type에 road와 parcel을 지정해야 하며 각각 도로명주소 및 지번주소를 의미합니다. 추후에는 이러한 주소에 대한 구분을 사람이 직접 구분해야 하는 번거러움이 없기를 기대합니다.

모바일 넥스젠의 공간 데이터 편집 시 자르기(Split)와 병합하기(Merge)

모바일 NexGen은 모바일 GIS 솔루션으로 공간 데이터 편집이 가능하며 기본적인 공간 데이터 편집 기능 외에도 공간 데이터를 자르거나 병합하는 등의 고급 편집 기능도 제공합니다. 아래의 동영상은 하나의 폴리곤을 원하는 형상을 갖도록 자르고 병합하는 공간 편집 기능에 대한 소개입니다.

아래는 글은 모바일 넥스젠의 기본적인 공간 데이터 편집에 대한 소개입니다.

모바일 넥스젠의 공간 데이터 편집

모바일 NexGen 관리자

모바일 NexGen 관리자는 단말기를 통해 편집한 공간 데이터와 수집한 현장 데이터를 사용자 PC에 내려 받을 수 있는 프로그램입니다. 아래는 모바일 넥스젠과 관리자 프로그램 간의 업무 흐름에 대한 도식도입니다.

단말기를 사용자 PC의 USB에 연결하여 바로 데이터를 내려받을 수 있으며, 편집된 공간 데이터는 SHP 파일 형식으로 저장할 수 있으며, 수집한 위치 기반 현장 데이터에 대해서는 그 목적에 맞게 SHP, CSV, 이미지, 동영상 파일들로 저장됩니다.

모바일 넥스젠 앱이 설치된 단말기에서 공간 데이터를 편집하는 기능에 대한 소개는 다음 URL을 통해 살펴볼 수 있습니다.

모바일 넥스젠의 공간 데이터 편집

또한 현장에서 다양한 데이터를 수집하는 기능에 대한 소개는 다음 URL을 통해 살펴볼 수 있습니다.

모바일 넥스젠의 현장 데이터 수집

C#에서 Spatialite 사용하기

Spatialite는 SQLite를 기반으로 하므로 먼저 SQLite를 설치해야 합니다. SQLite 사이트에서 Precompiled Binaries for 32-bit Windows (.NET Framework 4.6) 중 두번째인 sqlite-netFx46-binary-Win32-2015-1.0.113.0.zip 다운로드 받습니다. (Visual Studio에서 .NET WinForm 프로젝트에서 사용할 것인데 .NET 버전은 4.6으로 하고 32Bits로 설정함). 압축을 풀고 System.Data.SQLite.dll 파일 프로젝트 참조에 추가하고, SQLite.Interop.dll 파일은 프로젝트의 실행 파일이 생성되는 Debug 및 Release에 복사하면 SQLite의 기본 기능은 사용할 수 있게 됩니다.

이제 Spatialite를 사용하기 위해서는 이 파일을 다운로드 받아 압축을 풀고 전체 파일을 프로젝트의 실행 파일이 생성되는 Debug 및 Release 폴더에 복사합니다. 최종적으로 아래처럼 파일이 구성될 것입니다. (복사되어진 파일은 선택 상태로 둠)

이제 다음 코드를 테스트하면 정상 작동됩니다.

conn = new SQLiteConnection("Data Source=d:/db.sqlite;Version=3;");
conn.Open();

conn.LoadExtension("mod_spatialite");

String sql = "select sig_cd, ST_AsText(geometry) from TL_SCCO_SIG";
//String sql = "select sig_cd, geometry from TL_SCCO_SIG";
SQLiteCommand cmd = new SQLiteCommand(sql, conn);
SQLiteDataReader rdr = cmd.ExecuteReader();
            
while (rdr.Read())
{
    MessageBox.Show(rdr["sig_cd"] + " " + rdr.GetString(1));
    break;
}

rdr.Close();
conn.Close();
conn.Dispose();

위의 코드 중 4번 코드가 Spatialite 모듈을 확장 기능으로 적재합니다.

모바일 넥스젠의 현장 데이터 수집

안드로이드 기반의 GIS 솔루션인 모바일 넥스젠은 위치를 기반으로 다양한 데이터를 현장에서 바로 수집할 수 있습니다. 아래는 현장에서 지정된 건물에 대한 데이터를 입력받아 수집하는 내용에 대한 시연 동영상입니다.

수집할 수 있는 데이터에는 사진, 동영상과 위의 시연 영상처럼 미리 준비된 입력 폼 양식입니다. 입력 폼 양식에 대한 입력 필드는 문자열, 숫자, 사진, 날짜, 시간, 참/거짓, 선택입력 등이 가능하여 매우 다양한 데이터도 효과적이고 유연하게 수집할 수 있습니다.

이처럼 수집된 데이터는 DB화하여 공간 데이터와 함께 저장되므로 다양하게 처리되어 활용될 수 있습니다.