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화하여 공간 데이터와 함께 저장되므로 다양하게 처리되어 활용될 수 있습니다.

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

모바일 넥스젠은 안드로이드 기반의 GIS 솔루션으로, 현장에서 주위의 실제 지형, 지물의 형태를 파악하여 공간 데이터를 구축할 수 있습니다. 아래는 시연 동영상은 모바일 넥스젠을 이용하여 단말기에서 건물의 형상을 편집하고 새로운 건물에 대한 도형을 추가하는 기능과 각 도형에 대한 속성 데이터를 편집하는 내용을 소개합니다.

공간 데이터의 편집 시에 보다 정확하고 효율적인 실행을 위해 편집 이력에 대한 Undo / Redo와 정점 및 선분에 대한 스냅핑(Snapping) 기능을 지원합니다. 아울러 이렇게 편집된 공간 데이터는 SHP 파일 형태로 변환되어 PC 등으로 저장할 수 있습니다.

모바일 넥스젠의 레이어 관리 및 속성 확인

모바일 넥스젠의 지도는 레이어 단위로 구성되어 순차적으로 중첩(Overlay)되어 표시됩니다. 레이어는 아래의 UI를 통해 제목과 심벌을 확인할 수 있으며 각 레이어 별로 시각화 여부를 지정할 수 있습니다.

지도를 구성하는 레이어는 공간 데이터에 대한 그래픽 요소와 각 공간 데이터와 1:1로 연결되는 속성 데이터로 구성되는데, 이를 피쳐(Feature)라고 합니다. 각 지도 상에 표시되는 피쳐에 대한 속성의 확인은 언제라도 해당 피쳐의 도형을 터치하면 확인이 가능합니다.

아래의 시연 동영상은 모바일 넥스젠의 레이어 관리와 레이어를 구성하는 피쳐의 속성을 확인하는 기능에 대한 소개입니다.

모바일 넥스젠의 주소 검색 기능

모바일 넥스젠(Mobile NexGen)은 안드로이드 기반의 GIS 솔루션으로써 기본적인 위치 검색 기능인 주소 검색 기능을 제공합니다. 한국의 주소 체계는 지번주소와 도로명주소를 혼용하고 있는데요. 모바일 넥스젠은 이 두가지 주소에 대한 검색 기능을 모두 제공합니다.

아래의 시연 동영상은 모바일 넥스젠에서 주소를 검색하는 기능에 대한 소개입니다.

주소 검색에 사용되는 DB는 로컬 DB를 기본적으로 사용함으로써 네트워크가 지원되지 않는 현장에서도 주소 검색 기능을 사용할 수 있습니다. 물론 네트워크를 통한 주소 검색도 가능하며 이는 저희 회사에서 개발한 공간서버의 지오코딩 서버와 연계하여 제공됩니다.