흐름 방향을 갖는 선형 설비에 대한 심벌 표현

안드로이드 기반의 GIS 엔진인 BlackPoint-Xr은 현장에서 내 위치 주변의 설비를 조회하고 정상 여부를 검사하는 앱 개발을 한 기반이 됩니다. 설비 중 전력선, 상수/하수관로, 가스관 등은 선형으로 표시되는데, 이때 흐름의 방향이 사용자에게 중요한 의미를 갖게 됩니다. 아래의 화면은 BlackPoint-Xr을 이용해 개발된 하수관망 현장조회 시스템의 화면중 하나입니다.

하수관거 중 합류, 오수, 차집관 등에 대해 물의 흐름을 화살표로 표시하여 사용자가 직관적으로 파악할 수 있습니다.

BlackPoint-Xr에서 이러한 선형 설비에 대한 화살표 표시에 대한 심벌 표시에 대한 API에 대해 정리하겠습니다.

BlackPoint-Xr은 선형 설비에 대한 심벌을 StrokeSymbol이라는 타입으로 정의합니다. 아래의 코드는 선형 설비에 대한 레이어의 StrokeSymbol 객체를 인자로 넘겨주면 선형의 형상을 연속된 화살표로 표시해 주는 SetFlowLineStyle 함수 코드입니다.

위의 함수는 2개의 인자를 받는데요. 첫번째는 연관된 Activity의 getResources()로부터 쉽게 얻을 수 있는 객체인 res 인자와 앞서 언급한 StrokeSymbol 타입의 symbol입니다. res 인자가 필요한 이유는 연속된 화살표의 크기를 단말기의 해상도나 dpi와 상관없이 일정한 크기로 표시되도록 하기 위함인데.. 3번과 4번의 width와 height을 얻기 위해 사용됩니다. 이 width와 height는 연속된 화살표를 구성하는 단일 화살표의 너비와 높이에 대한 Pixel 값입니다. Utility.px 함수는 다음과 같습니다.

즉, 위의 px라는 정적 함수는 dp 단위를 px 단위로 변환해 줍니다. 아시겠지만, 안드로이드에서 레이아웃이나 그래픽 요소의 표현 단위는 최대한 px가 아닌 dp로 해줘야 합니다.

다시 SetFlowLineStyle 함수로 돌아가서 6번~13번 코드가 화살표의 형상을 구성하는 코드입니다. 즉, 앞서 구한 width와 height 값을 통해 화살표 모양의 Path를 구성하게 되는데요. 패스의 구성 좌표의 지정은 아래의 화면을 참고하면 쉽게 이해할 수 있습니다.

이렇게 만들어진 Path 객체를 14번 코드에서 PathDashPathEffect 객체의 생성에 사용하고 이를 StrokeSymbol의 Paint 객체에 설정해 주기만 하면 됩니다.

오픈소스 BlackPoint-Xr 다운로드

Release History

[2016-11-25] BlackPoint-Xr v20161125 Release
- Scale Text for Hi-DPI Display
- Label Theme Support
- EPSG Support
[2016-01-29] BlackPoint-Xr v20160129 Release
- First Release

Overview

블랙포인트(BlackPoint)는 안드로이드 기반의 GIS 엔진입니다. 대용량의 백터지도와 항공영상지도를 배경맵으로 실제 공간에서 이루어지는 다양한 GIS 현장 업무에 대한 기능을 개발할 수 있습니다.

다음 그림은 블랙포인트를 이용해 개발된 시스템 화면입니다.

블랙포인트는 현장에서 GIS를 이용한 효율적인 업무 처리를 위한 전문 GIS 앱을 개발할 수 있는 검증된 맵엔진입니다.

Functions List

블랙포인트는 다음과 같은 기능을 갖습니다.


  • 지도 확대, 축소와 이동은 물론 회전 지원
  • 기가(Giga) 단위의 항공사진지도와 대용량의 수치지도를 화면에 빠르게 표시
  • GPS를 통해 현재 위치를 파악하고 추적할 수 있음
  • GPS의 좌표를 다양한 좌표계로 투영하여 지도에 표시할 수 있음
  • GIS의 레이어 중첩 개념으로 지도를 구성하고 관리
  • 네트워크가 않되는 환경에서도 SD 메모리 카드를 통해 공간 데이터 활용 가능
  • 공간 데이터를 편집할 수 있으며 편집 이력에 대해 Undo/Redo 가능
  • 공간 데이터 편집에 대해 Snapping 기능을 제공하여 보다 정확하고 편리한 편집 기능 제공
  • 다양한 그래픽 요소(도형, 이미지, 텍스트 등)에 대한 매쉬업 지원
  • GIS의 모든 공간분석 및 공간연산 기능 지원
  • 공간 DBMS인 SpatiaLite를 활용할 수 있어, 빠른 공간 데이터 검색 및 다양한 SQL 쿼리문 지원
  • GeoService-Xr을 통해 ArcSDE에서 제공하는 공간 데이터를 활용 가능
  • GeoService-Xr을 통해 DEM 데이터 지원(평균경사도, 단면도 분석)

Download

블랙포인트 엔진 및 블랙포인트의 소스 코드는 다음 링크를 통해 다운로드 받으실 수 있습니다.

License

블랙포인트는 어느 누구나 소스코드를 내려 받아 분석해 볼 수 있고 개선시켜 나갈 수 있는 공개소프트웨어이며, LGPL 라이선스를 기반으로 함과 동시에 다음과 같은 활용을 금지합니다. BlackPoint-Xr을 이용한 연구과제에서의 활용을 금지합니다. BlackPoint-Xr의 저작권자가 아닌 경우 BlackPoint-Xr을 연구과제에 활용할 수 없다는 의미이며, 이는 연구과제의 그 본래 목적은 해당 분야의 기반 되는 기술을 연구하고 개발하여 원천 기술을 확보하는 것에 있다고 보며, 이러한 연구과제의 근본적인 목적을 추구하기 위함입니다. 연구과제 이외의 응용분야에서 BlackPoint-Xr의 상업적인 활용은 LGPL 라이선스 아래에서 자유롭게 활용할 수 있습니다.

BlackPoint-Xr에 대한 기술 지원은 계약을 통해 일정 기간을 기준으로 제공 됩니다. 기술지원이 필요한 사용자는 hjkim@geoservice.co.kr로 문의하시기 바랍니다.