[Android] ListView의 선택 항목에 대한 하이라이팅(Hilighting) 또는 배경색 변경

안드로이드에서 ListView 위젯에 데이터 목록을 표시하고 사용자가 데이터 항목을 터치하면 어떤 항목이 터치가 되었는지에 대한 피드백이 있어야 합니다. 그러나 안드로이드에서는 기본적으로 이러한 피드백을 제공해 주지 않습니다. 이러한 피드백을 제공해주기 위한 절차입니다. 아래는 사용자가 항목을 터치했을 때 앞서 언급한 피드백에 대한 효과에 대한 이미지입니다.

먼저 ListView가 아래처럼 정의되어 있습니다. 항목 선택에 대한 피드백을 위해 특별히 해준 것은 없습니다.

...



...

ListView는 채워질 항목을 위한 레이아웃을 정의하게 되는데요. 이 레이아웃의 배경을 Selector로 지정하는게 키포인트입니다. 바로 아래처럼 말입니다.



    


위의 코드에서 중요한 것은 바로 3번 코드입니다. background를 selector_listview_item으로 지정하고 있는데, 이 selector_listview_item에 대한 XML 코드는 아래와 같습니다.


    
    

위의 코드에서 중요한 부분은 4번과 5번인데요. 5번에서 항목에 대한 상태가 만족될 경우, 즉 state_pressed가 참(true)일 경우에 4번 코드에서 지정한 Drawable를 이용해 그리라는 것입니다. 4번 코드에서 지정한 drawable인 ItemSelectedColor는 color.xml에 다음처럼 정의되어 있습니다.



    #8EE2FB

위의 코드 중 3번에서 지정한 웹 컬러 표현값인 #8EE2FB로 지정됩니다.

항목 선택하면 사용자에게 피드백을 주는 것이 당연한데, 안드로이드는 그렇지 않다는 점.. 분명히, 상당히 불편한 것이 틀림없지만.. 기능에 대한 넓은 확장성과 높은 응용성을 위해 이러한 방식을 취했다.. 생각합니다.

GeoService-Xr 소개 및 사용자 메뉴얼

GIS 공간서버인 GeoService-Xr은 JRE를 지원하는 Linux, Unix, Windows 등의 OS에서 구동할 수 있는 서버 프로그램인데요. 사용하기가 쉽고 기능이 단순한만큼 매우 안정적인 공간서버입니다. 안정성에 대한 하나의 예로 119 소방재난본부에서 도입되어 2년 가까이 단 한번도 중단된 적이 없이 운영되고 있습니다.

GeoService-Xr은 Xr 패키지를 구성하는 하나의 요소인데요. Xr 패키지는 공간 서버를 중심으로 웹, 모바일, PC에서 운영할 수 있는 GIS 시스템을 개발할 수 있는 총체적인 솔루션을 제공하며 배경지도와 지오코딩 기능을 제공하니다. 아래는 Xr 솔루션에 대한 소개 PDF와 내용중 GeoService-Xr에 대한 스틸샷입니다.

아래는 GeoService-Xr에 대한 사용자 메뉴얼입니다. GUI 관리툴을 제공하고 이 관리툴을 이용해 보다 쉽게 서버를 관리할 수 있습니다. 페이지 수가 표지 포함하여 35페이지인데요. 처음 접하는 사용자도 빠른 시간 내에 제품에 익숙 해지고 바로 프로젝트에 적용할 수 있다는 장점이 있습니다.

(주)지오서비스는 지금까지 자체적으로 개발한 GIS 제품군인 Xr 솔루션을 이용하여 웹, 모바일, 데스크탑에서 운영할 수 있는 GIS 어플리케이션 개발과 공간DB 가공 및 고도화 작업을 해 왔습니다. 향후 더 많은 GIS 어플리케이션 개발과 공간 DB 가공 및 고도화 작업을 통해 실무에 더욱 효과적이면서 적합한 Xr 솔루션으로 발전해 나아갈 것 입니다.

테이블의 필드명 변경

테이블의 필드명 변경에 대한 SQL문을 기록해 둠. PostGIS에서 제공하는 SHP 파일 Importer에서 Geometry 필드명이 기존에는 the_geom이였으나 현재는 geom으로 변경되어 아래의 SQL문이 필요하게 됨.

ALTER TABLE public."admin_dong" RENAME geom TO the_geom;

PostgreSQL에서 공간 데이터베이스(Spatial Database) 생성

PostgreSQL와 PostGIS를 각각 최신버전(글작성 기준으로 9.4.2-1 64Bits)을 설치 하였습니다. PostGIS 이전버전에서는 설치 단계에서 공간 데이터베이스 설치를 체크하면 자동으로 생성해 주었으나 최신버전에서는 체크를 하여도 공간 데이터베이스가 생성 되지 않아 직접 SQL문을 통해 공간 데이터베이스를 생성해 줘야 합니다. 일단 PostgreSQL과 PostGIS를 모두 설치를 합니다. 그리고 pgAdmin을 실행하고 새로운 데이터베이스 생성을 위해 아래 화면처럼 Databases에서 메뉴를 호출하고 New Database…를 실행합니다.

새롭게 표시된 New Database… 대화상자에서 생성할 데이터베이스의 이름과 소유자를 지정합니다. 데이터베이스 명은 gis로 입력 하였고 소유자는 postgres를 선택하였습니다.

생성된 gis 데이터베이스에 SQL문을 입력하기 위해 SQL 입력기를 아래 화면의 툴 버튼을 클릭하여 실행합니다.

표시된 Query 대화상자에서 아래화면처럼 입력하고 실행합니다.

그리고 또 아래처럼 입력하고 실행합니다.

여기까지가 공간 데이터베이스를 생성하기 위한 절차인데요. 지금까지 옳바르게 진행이 되었다면 아래화면처럼 spatial_ref_sys 테이블이 생성된 것이 보입니다.

이상으로 공간 데이터베이스를 생성하기 위한 과정을 정리해 봤습니다.

[연구논문] 모바일 관광을 위한 위치 기반 서비스 기술

약 2년전 연구과제 사업의 산출물 중 하나로 발행된 논문입니다. 모바일 환경에서 사용자의 위치 정확도를 향상하기 위한 방안으로 사용자가 갈 수 있는 길에 대한 네트워크 데이터를 구축하고 이 네트워크 데이터와 이동 속도 등을 고려하여 사용자의 위치 정확도를 높이기 위한 알고리즘 개발과 실제 구현에 대한 연구과제였습니다.

이 연구과제에서 네트워크 데이터를 구축하기 위한 과정 중 자동화를 위해 DuraMap-Xr을 이용하였고 정확도 향상 알고리즘과 모바일에서의 활용에 대한 프로그램은 BlackPoint-Xr을 이용하였습니다. 아래의 URL은 실제 논문에 대한 다운로드 URL입니다.

사용자 삽입 이미지

연구 과제가 마무리될 쯤 언제 시간이 되면 이곳 블로그를 통해 공유해야겠다 했는데, 잊고 있다가 모바일 GIS로 구글링을 하다가 다시 제게 역으로 검색되어 이제서야 올려봅니다.