[BlackPoint-Xr] 퍼펙트 튜토리얼 – 1 : 프로젝트 생성

모바일 GIS 엔진인 블랙포인트는 안드로이드에서 GIS 전문가가 필요로 하는 모든 기능을 개발할 수 있는 API를 제공합니다. 블랙포인트에 대한 소개 및 소스코드와 라이브러리는 아래의 링크를 통해 얻을 수 있습니다.

오픈소스 BlackPoint-Xr 소개 및 다운로드

이 글은 개발자가 블랙포인트를 이용해 GIS 앱을 개발하기 위해 필요한 API를 최대한 완벽하고 균형있게 튜토리얼 형식으로 작성하였습니다.

블랙포인트 퍼펙트 튜토리얼의 샘플은 Android Studio 2를 이용하여 작성 하였습니다. Java 언어나 개발에 필요한 프로그램의 설치에 대해서는 별도로 언급하지 않고, 블랙포인트에 대한 내용에 집중하여 설명하고 있습니다. Java 언어를 모르는 분은 먼저 Java 언어와 안드로이드 개발 API를 학습하고 난 뒤, 본 튜토리얼을 읽기 바랍니다.

이 튜토리얼에서는 블랙포인트를 이용해 앱을 개발하기 위한 프로젝트를 생성하고 블랙포인트 라이브러리를 설정하는 내용에 대해 설명합니다.

먼저 안드로이드 스튜디오를 실행하고 [File]-[New]-[New Project] 메뉴를 실행합니다. 새로운 프로젝트 생성 대화상자 중 ‘Add an Activity Mobile’에서 선택한 Activity는 ‘Basic Activity’로 하였으며, 나머지는 기본값으로 하였습니다. 생성된 프로젝트를 곧바로 실행해 보면 다음과 같은 화면이 표시됩니다. 필자는 실제 단말기인 갤럭시S6를 사용하였습니다. 참고로 현재 시점에서 갤럭시S6는 안드로이드 버전이 마쉬멜로우이며 Android SDK Number가 23입니다.

위의 화면에서 Hello World!가 표시된 부분을 블랙포인트에서 제공하는 맵뷰로 교체할 것입니다. 교체에 앞서 블랙포인트 라이브러리를 프로젝트에 참조해야 합니다. 블랙포인트 라이브러리는 전체 소스코드와 함께 jar로도 묶어 제공됩니다. 이 jar 파일들은 이 글의 상단에 있는 오픈소스 BlackPoint-Xr 소개 및 소스코드 다운로드에서 얻을 수 있습니다. jar 파일들을 앞서 생성한 프로젝트의 폴더 중 app/libs에 복사하면 아래 화면과 같습니다.

블랙포인트는 jar 파일뿐만 아니라 so 파일도 제공합니다. 이 so 파일은 app/src/main 폴더에 jniLibs 폴더를 만들고, 이 폴더에 복사해 놓으면 되며, 아래 화면과 같습니다.

여기까지가 블랙포인트 라이브러리를 안드로이드 스튜디오에서 참조하도록 하는 내용의 전부입니다.

이제 앞서 봤던, 프로젝트 실행시 보였던 ‘Hello World!’ 대신 지도뷰를 표시해 보도록 하겠습니다. 프로젝트의 레이어웃 구조를 살펴보면, Activity는 activity_main 레이아웃 리소스를 사용하고, 다시 activity_main 레이아웃 내부에서 content_main 레이아웃 리소스 파일을 포함하고 있습니다. 즉, Hello World! 문자열에 대한 뷰는 이 content_main 레이아웃에 존재합니다. content_main 레이아웃 파일을 열어 Hello World! 문자열을 표시하는 TextView를 제거하고 바로 그 자리에 다음 코드를 입력합니다. 아래의 코드는 TextView 대신 지도뷰인 XrMap으로 대체한 것이며, 불필요한 Padding 값을 제거한 content_main.xml의 전체 코드입니다.

이제 실행하면 다음과 같은 화면을 볼 수 있습니다.

편의를 위해 맵뷰를 아래처럼 Activity의 private 맴버 변수로 두고 onCreate에서 참조하도록 합니다.

끝으로 Activity에 onDestroy 함수를 재정의해서 맵 뷰에 대한 리소스를 깨끗하게 반환하도록 하는 것이 좋습니다. 아래의 코드를 추가합니다.

“[BlackPoint-Xr] 퍼펙트 튜토리얼 – 1 : 프로젝트 생성”에 대한 6개의 댓글

  1. 위의 튜토리얼을 따라 해보았는데 위의 결과는 현시되는데
    [ERR] LocationManager() 라는 Toast가 현시됩니다.
    부탁드립니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다