[GIS] 속성값으로 분류해 다수의 SHP로 저장하는 툴, ClassifySHP

지정된 조건과 일치하는 속성을 갖는 도형을 선택해 별도의 SHP 파일에 저장해주는 툴입니다. 조건을 여러 개를 지정할 수 있으므로 한번에 다수의 SHP 파일로 저장할 수 있습니다. 속성에 대한 조건은 정규 표현식을 사용합니다. 지정된 조건은 다시 파일로 저장해서 추후 다시 재사용할 수 있도록 하였습니다.

사용자 삽입 이미지
소스 코드와 실행파일을 따로 다운로드 받을 수 있도록 하였습니다. 아래의 링크를 통해 받으시기 바랍니다.

이 툴은 듀라맵(DuraMap-Xr)을 사용하므로 듀라맵을 먼저 PC에 등록해야 합니다. 듀라맵에 대한 자세한 설명과 다운로드는 다음 url을 참고하시기 바랍니다.

http://www.gisdeveloper.co.kr/notice/574

GIS 시스템 개발에 앞서 공간 데이터를 가공해야 할 일이 있어 시간을 절약하기 위해 만들어 사용하게 된 툴입니다. 다른 분들에게도 도움이 되시길 바랍니다.

[GIS] 정규표현식을 이용한 SHP 추출, ExpressionsSHP

개발자 피드백 : 포인트 타입의 SHP 파일에 대해 문제가 발생하는 것을 해결 하였습니다.

SHP 파일의 속성값을 기준으로 원하는 값과 일치하는 도형만을 추출해 새로운 SHP 파일로 추출해 내는 툴입니다. 일치하는 속성값의 기준은 정규표현식을 사용합니다.

지적도를 예로 들어 JIBUN이라는 필드값이 ‘도’로 끝나는 모든 도형을 추출하라는 정규 표현식은 ‘도$’가 됩니다. 참고로 ‘도’로 끝나는 경우 도로에 해당합니다. 아래의 실행 화면은 이와 같은 예에 대한 실행 예입니다.

사용자 삽입 이미지
보시는 것처럼 입력 SHP 파일을 지정하고 대상이 되는 필드, 정규표현식값.. 끝으로 조건과 일치하는 도형을 저장할 새로운 SHP 파일명을 지정하면 됩니다. 위의 실행에 대한 결과는 아래와 같습니다.

사용자 삽입 이미지
보시는 것처럼.. 도로만이 추출된 결과를 볼 수 있습니다. 이 프로그램은 듀라맵(http://www.gisdeveloper.co.kr/notice/574)을 이용해 개발되었으므로 듀라맵을 PC에 등록해줘야 합니다. 이 프로그램에 대한 소스 코드와 실행 파일을 아래 링크를 통해 다운받을 수 있습니다.

정규표현식을 통해 원하는 값을 선택해 내는 일은 매우 유연한 방법입니다. 원하는 경우와 상황에 대한 정규표현식에 대해서 댓글을 통해 알려주시면 성의껏 답변해 드리겠습니다.

[GIS] 지오서비스에서 개발하여 지자체에 납품한 GIS 시스템 사용통계

지오서비스(www.geoservice.co.kr)에서 개발하여 지자체에 납품한 GIS 시스템의 사용현황에 대한 보고 요청을 받아 1년 동안 로그인 회수를 뽑아 보았습니다. 작년 3월에 납품되어 1년 이상 활용되었으며 단한차례도 시스템이 멈춘적이 없는 안정성을 제공합니다.

통계는 시스템의 로그인 횟수로 하였습니다. 더욱 정확한 통계는 지도 페이지 조작 횟수이지만.. 지도 페이지 조작 횟수는 개발된 시스템 상에서 알아낼 수 없어 로그인 횟수로만으로 통계를 내었습니다. 정확히 1년 기간 범위로 하여 월별 로그인 횟수를 SQL 문을 통해 뽑아 보니 다음과 같은 표를 얻을 수 있었습니다.

사용자 삽입 이미지
이를 보다 효과적인 경향을 살펴보기 위해 그래프로 표현하면 다음과 같습니다.

사용자 삽입 이미지
일정하지는 않지만 지속적으로 로그인 횟수가 증가하는 경향인 것을 알 수 있습니다. 어떤 시스템을 활용할때.. 그 시스템이 어느정도 익숙해지면 시스템을 지속적으로 로그인해 놓고 활용하게 됩니다. 위의 그래프는 단순히 로그인 횟수만을 통해 시스템에 대한 사용량 통계를 제공한 것이지만 만약 지도 페이지 조작 횟수로 통계를 처리한다면 시스템에 대한 사용에 대한 추세를 보다 정확히 알 수 있을 것입니다

이 통계에 대한 대상 시스템은 지오서비스의 자체 솔루션인 FingerEyes-Xr과 GeoService-Xr이 적용되었습니다. FingerEyes-Xr은 오픈소스로 클라이언트 맵엔진이며 GeoService-Xr은 공간서버입니다.

[GIS] 도로명 주소 검색에 사용된 데이터 및 도로명 주소 현장조사 시스템 소개

협력사를 통해 개발 및 납품 요청을 받고 개발한 “도로명 주소 현장조사 시스템”에서 도로명에 기반한 새주소 검색 기능을 개발하면서.. 이 새주소 검색에 사용된 데이터에 대한 정리를 해봅니다.

시스템 개발을 위해 제공 받은 데이터는 KLIS에서 다운로드 받은 지적도, 25cm급 항공영상(77 기가바이트) 그리고 새주소 데이터입니다. 새주소 데이터에는 건물, 도로, 출입구 등에 대한 SHP 파일입니다. 이 데이터 중에서 새주소 검색 기능에서 사용된 데이터는 오직 건물에 대한 SHP 파일 하나입니다. 이 건물의 속성 필드는 다음과 같이 구성되어 있습니다. 매우 많은 필드로 구성되어져 있습니다.

사용자 삽입 이미지
하지만 늘 그렇듯… 필요한 것은 이 중 일부입니다.. 데이터 용량과 속도를 최적화 시키기기 위해서 새주소 검색에 필요한 필드만을 남기고 정리를 하면 다음과 같습니다.

사용자 삽입 이미지
보시면.. 건물의 명칭을 위한 BULD_NM과 읍면 단위 명칭인 EMD 그리고 도로명에 대한 DORON, 주소의 번지를 나타내는 BULD_MN과 BULD_SL 필드가 전부입니다. 그리고 DP_NAME이라는 새로운 필드가 추가되었는데 이 필드는 BULD_MN과 BULD_SL로 계산된 필드입니다. 새주소에도 건물에 대한 번지가 존재하는 바로 이 번지에 대한 내용으로 건물 위에 라벨로 표시하기 위한 목적으로 추가한 필드입니다. 이 DP_NAME은 주소 검색에 활용되지 않으므로 건물 위에 라벨 표시가 필요치 않으면 추가하지 않아도 됩니다. 주소 검색에 필요한 데이터, 매우 단순하다는 것을 알 수 있고… 이제 UI를 살펴 보겠습니다.

사용자 삽입 이미지
보시면.. 읍면에는 검색 대상 지역의 읍면에 대한 명칭이 리스트업되며.. 하나의 읍면을 선택하면 도로명에 선택된 읍면에 해당되는 도로명이 리스트업됩니다. 읍면 및 도로명의 리스트업은 앞서 언급한 데이터의 필드로 구성이 쉽게 가능합니다. 이중 선택된 읍면에 대한 도로명의 목록을 조회하는 SQL문은 다음과 같습니다.

SELECT 
    DISTINCT DORON 
FROM 
    ADDRESSDB 
WHERE 
    EMD = '용문면' AND DORON <> ''

위의 UI에서 번지에 4 를 입력하고 검색 버튼을 클릭하면 검색 결과에 4 가 포함된 용문면 개방길에 대한 주소가 아래의 화면처럼 검색됩니다.

사용자 삽입 이미지
이 중 42를 선택하고 이동 버튼을 누르면.. 해당 위치로 빠르게 지도가 이동됩니다.

사용자 삽입 이미지
해당 위치로 지도를 이동하기 위해서는 건색된 건물 도형에 대한 MBR을 알아야 하는데 이 MBR은 바로 알기는 어렵고.. 먼저 해당 건물의 FID를 조회합니다. 이 FID를 조회하는 SQL에 대한 실제 코드를 살펴보면 다음과 같습니다. 코드는 시스템의 구동 환경인 안드로이드 SDK의 코드입니다.

Cursor cursor = rawDb.rawQuery(
    "SELECT FID, BULD_NM, DP_NAME FROM ADDRESSDB WHERE EMD='" + 
    emdName +  "' AND DORON='" + 
    roadName + "' AND BULD_MN LIKE '%" + 
    BonBun + "%' AND BULD_SL LIKE '%" + 
    BuBun + "'", null);

여기서 FID를 얻어 올 수 있고.. 이 FID를 통해 해당 도형의 MBR을 다시 얻어오게 됩니다.

끝으로.. 도로명 주소 현장조사시스템은 안드로이드 기반의 GIS 시스템으로 지오서비스의 블랙포인트라는 모바일 GIS 엔진을 이용해 개발되었습니다. 현장조사시스템은 공간 데이터만 시스템에 맞게 가공하고 적용함으로써 시스템에 대한 재개발을 하지 않고 바로 사용할 수 있도록 개발된 제품입니다.

잠시 소개해 드린 현장조사 시스템이나 이 시스템 개발에 사용된 블랙포인트 엔진에 대해 관심 있으신 분은 지오서비스로 문의하시기 바랍니다.