지도제공 api 정의 - sgis.kostat.go.kr sdk-v1.0.pdf · arraylist 위치 좌표 리스트 int...

27
1 “SGIS 오픈플랫폼” 지도제공 API 정의 Android Version 1.0

Upload: others

Post on 10-Mar-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

1

“SGIS 오픈플랫폼”

지도제공 API 정의 Android

Version 1.0

Page 2: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

2

1. 개요 ............................................................................................................................................ 3

1.1. 목적 ................................................................................................................................... 3

1.2. 고려사항 ............................................................................................................................ 3

1.3. 서비스 개요 ....................................................................................................................... 3

1.3.1. 서비스 요약 ............................................................................................................ 3

2. API .............................................................................................................................................. 4

2.1. API 목록............................................................................................................................. 4

2.2. API 정의............................................................................................................................. 6

2.2.1. 지도 생성 ................................................................................................................ 6

2.2.2. 레이어 관리 .......................................................................................................... 10

Overlay ........................................................................................................... 10

Balloon ........................................................................................................... 10

Marker ............................................................................................................ 12

Image ............................................................................................................. 14

Lable............................................................................................................... 15

Circle .............................................................................................................. 16

Polygon .......................................................................................................... 17

Polyline ........................................................................................................... 19

Rectangle ....................................................................................................... 21

2.2.3. 레이어 관리 .......................................................................................................... 23

MapEventListener ........................................................................................... 23

OverlayListener ............................................................................................... 26

목 차

Page 3: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

3

1. 개요

1.1. 목적

본 문서는 SGIS 오픈플랫폼이 제공하는 android용 SDK를 이용하여 서비스 개발시 API전반

의 기능설명 및 변수 정보를 기술함으로써, 개발자의 API에 대한 이해를 돕기 위해 작성되

었다.

1.2. 고려사항

본 문서에는 개발자가 API 사용시 클래스, 함수, 전달변수등의 전반적인 내용을 기록하였다.

수정사항 및 추가사항 발생시에는 상호 협의하여 보완 후 매뉴얼 내용 보완을 진행한다.

매뉴얼 변경 시에는 주요 변경 내용을 명시하고 변경에 따른 버전을 관리한다.

1.3. 서비스 개요

1.3.1. 서비스 요약

SGIS 오픈플랫폼(SOP) 서비스는 통계청의 센서스 통계정보와 각종 공공 및 민간의 정보를 공

간정보 기반으로 융합∙분석하여 사용자에게 제공함으로써 사용자들이 각종 정보에 대해 지도

를 기반으로 한 직관적인 이해를 가능하게 한다. 기반 지도를 개별 서비스에서 개발하기에는

시간이 중복적으로 확보되어야 하고, 전문적인 인력도 투입되어야 하므로 좀더 손쉽게 서비스

를 개발할 수 있도록 android Native API 제공한다.

Page 4: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

4

2. API

2.1. API 목록

구분 클래스 API 비고

지도 생성 MapView

void clearAllCache()

void dispatchMapEvent(MapEventListener

listener)

Bounds getEntireMapBounds()

Bounds getMapBounds()

Coord getMapCenter()

int getMaxZoomLevel()

int getMinZoomLevel()

List<Overlay> getOverlays()

int getZoomLevel()

void setBuiltInZoomControls(final boolean

on)

void setMapCenter(Coord centerCoord)

void setZoomLevel(int zoomlevel)

void setZoomToExtent(Bounds bounds)

void showScale(boolean on)

void zoomIn()

void zoomOut()

레이어 관리

Overlay

void

dispatchOverlayEvent(OverlayEventListener

listener)

OverlayEventListener

getOverlayEventListener()

Balloon

Balloon(String title, Coord coord)

Balloon(String title, Coord coord, Drawable

balloonIcon)

void setTextColor(int textColor)

void setFontSize(int textSize)

Marker Marker(Coord coord)

Marker(Coord coord, Drawable markerIcon)

Image Image(Coord coord, Drawable imageIcon)

Page 5: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

5

Label

Label(String title, Coord coord)

Label(String title, Coord coord, int textSize,

int textColor)

Circle Circle(Coord coord, int fillColor, float radius)

Polygon Polygon(Coord[] coordArray, int strokeColor,

int fillColor, int strokeWidth)

Polyline

Polyline(Coord[] coordArray, int strokeWidth,

int strokeColor)

Polyline(ArrayList<Coord> lineCoordList,

Bounds routeBounds,int strokeWidth, int

strokeColor)

KRectangle KRectangle(Coord coordLt, Coord coordRd,

int strokeColor,int fillColor, int strokeWidth)

컨트롤 관리

MapEventListener

boolean onTouch(Pixel position)

boolean onDoubleTouch(Pixel position)

boolean onMultiTouch(Pixel[] positionArray)

boolean onLongTouch(Pixel position)

boolean onChangeZoomLevel(boolean

isZoomIn, int zoomlevel)

boolean onMapInitializing(boolean isSuccess)

boolean onBoundsChange(Bounds

mapBounds)

OverlayListener

boolean onTouch(Overlay overlay, float x,

float y)

boolean onDoubleTouch(Overlay overlay,

float x, float y)

boolean onLongTouch(Overlay overlay, float

x, float y)

Page 6: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

6

2.2. API 정의

2.2.1. 지도 생성

Android 기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지 표출, 터치에 의한 지도

이동, 줌인, 줌아웃등의 기능을 수행하고 관리하는 클래스임.

함수명 Bounds getMapBounds()

지도 영역을 반환한다.

입력변수

없음

리턴값

Bounds 화면에 해당하는 맵의 영역

함수명 void clearAllCache()

로컬에 저장된 맵 타일 이미지를 삭제한다.

입력변수

없음

리턴값

없음

함수명 void dispatchMapEvent(MapEventListener listener)

맵 이벤트 감지를 위한 리스너를 등록한다.

입력변수

listener 지도 이벤트 리스너 객체

리턴값

없음

함수명 Bounds getEntireMapBounds()

지도에서 최대로 표출 가능한 좌표 범위를 반환한다.

입력변수

없음

리턴값

Bounds 표출 가능한 맵의 최대 영역

함수명 Coord getMapCenter()

화면상의 지도 중앙 좌표를 반환한다.

Page 7: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

7

입력변수

없음

리턴값

Coord UTMK 중앙 좌표값

함수명 int getMaxZoomLevel()

지도에서 지원 가능한 최대 레벨을 반환한다.

입력변수

없음

리턴값

int 최대 줌 레벨

함수명 int getMinZoomLevel()

지도에서 지원 가능한 최소 레벨을 반환한다.

입력변수

없음

리턴값

int 최소 줌 레벨

함수명 List<Overlay> getOverlays()

맵뷰에 등록되어 있는 overlay 를 관리하는 List 를 반환한다.

입력변수

없음

리턴값

List<Overlay> 지도에 추가된 전체 overlay list 목록

함수명 int getZoomLevel()

현재 지도의 줌레벨 값을 반환한다.

입력변수

없음

리턴값

Int 현재 지도의 줌레벨

함수명 void setZoomToExtent(Bounds bounds)

주어진 영역이 화면에 모두 표출할 수 있는 최적의 bounds 를 반환한다.

입력변수

Page 8: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

8

Boundes 표출하고 싶은 영역

리턴값

없음

함수명 void showScale(boolean on)

스케일 정보를 활성화 한다.

입력변수

Boolean 스케일 활성화 여부

리턴값

없음

예제

if (!mapView.isScale()) {

// 스케일 활성화

mapView.showScale(true);

} else {

// 스케일 비활성화

mapView.showScale(false);

}

실행결과

함수명 void zoomIn()

Page 9: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

9

현재 줌레벨에서 한단계 확대한다.

입력변수

없음

리턴값

없음

함수명 void zoomOut()

현재 줌레벨에서 한단계 축소한다.

입력변수

없음

리턴값

없음

Page 10: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

10

2.2.2. 레이어 관리

Overlay

Overlay들의 최상위 부모 클래스이다.

함수명 void dispatchOverlayEvent(OverlayEventListener listener)

Overlay Touch Event 를 전달받기위한 리스너를 등록한다.

입력변수

OverlayEventLi

stener 이벤트를 수신할 리스너

리턴값

없음

함수명 OverlayEventListener getOverlayEventListener()

Overlay 에 등록되어 있는 리스너를 반환한다.

입력변수

없음

리턴값

OverlayEventLi

stener 등록되어 있는 리스너

Balloon

지도화면위에 정보를 표시하기 위한 창을 띄워줄 수 있게 해주는 overlay에 종속적인 클래스이다.

함수명 Balloon(String title, Coord coord)

말풍선에 표시될 내용, 좌표를 파라미터로 받는다.

입력변수

String 말풍선에 들어가 문구

Coord 말풍선 하단 중앙 꼭지점의 좌표

리턴값

없음

예제

mapCenter = mapView.getMapCenter();

Page 11: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

11

Balloon balloon = new Balloon("TEST INFO_WINDOW", mapCenter);

mapView.getOverlays().add(balloon);

mapView.invalidate();

실행결과

함수명 Balloon(String title, Coord coord, Drawable balloonIcon)

말풍선에 표시될 내용, 좌표, 이미지를 파라미터로 받는다.

입력변수

String 말풍선에 들어가 문구

Coord 말풍선 하단 중앙 꼭지점의 좌표

Darwable 변경할 이미지를

리턴값

없음

함수명 void setTextColor(int textColor)

말풍선에 표시될 글자 색상을 설정한다.

입력변수

Int Android에서 사용하는 Color클래스의 색상값을 사용한다.

리턴값

없음

Page 12: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

12

함수명 void setFontSize (int textSize)

말풍선에 표시될 글자 크기를 설정한다.

입력변수

Int 글자의 크기를 설정

리턴값

없음

Marker

지도화면 위의 지정된 좌표에 marker를 그리는 클래스임.

함수명 Marker(Coord coord)

마커의 좌표를 파라미터로 받는다.

입력변수

Coord 위치 좌표

리턴값

없음

예제

// 맵이벤트 리스너 설정

mapView.dispatchMapEvent(this);

// 줌레벨 설정

mapView.setZoomLevel(10);

// marker를 관리할 layer객체를 mapview에 등록

// marker의 경우 POI나 특정한 목적으로 이용하는 경우에 관리

목적으로 Layer클래스를 생성해서 별도로 관리를 할 수

있습니다. MarkersLayer클래스를 상속받아 구현해서 사용합니다.

// Layer클래스를 상속받아 구현하여 객체를 생성한뒤 객체를

맵뷰의 Overlay List에 등록을 하고 관리하고자 하는 Marker를

레이어에 등록하는 방법으로 사용합니다.

mapView.getOverlays().add(markerlayer);

// layer객체가 터치이벤트를 수신하도록 설정합니다.

markerlayer.dispatchOverlayEvent(this);

// marker가 위치할 좌표 설정(임의로 화면 중심)

Coord mapCenter = mapView.getMapCenter();

// marker 생성(기본으로 좌표만 주고 생성)

// Marker클래스는 기본제공되는 아이콘이 있어서 좌표만으로 생성이 가능

// Image클래스는 기본제공 아이콘이 없어서 추가 파라매터로

아이콘을 입력해야 합니다.

Page 13: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

13

Marker marker = new Marker(mapCenter);

// marker를 터치했을 때 나타나게 될 말풍선의 내용을 설정

// Marker와 Image의 경우 Layer클래스로 관리를 하게 되면 기본적으로

// 말풍선이 나타나도록 되어있습니다. 말풍선이 나타나지 않게 하려면

// 레이어객체에서 setEnableBalloon()메소드를 이용하여 옵션을 설정합니다.

marker.setTitle("test Marker");

// marker를 관리할 layer에 등록

markerlayer.addItem(marker);

// 바로 표시되지 않기 때문에 맵뷰를 한번 갱신합니다

mapView.invalidate();

markerlayer.addItem(marker);

mapView.invalidate();

실행결과

함수명 Marker(Coord coord, Drawable markerIcon)

마커에 표시될 좌표, 이미지를 파라미터로 받는다.

입력변수

Coord 위치 좌표

Drawable 마커에서 사용할 이미지

리턴값

없음

Page 14: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

14

Image

지도화면 위의 지정된 좌표에 이미지를 그리는 클래스임

함수명 Image(Coord coord, Drawable imageIcon)

이미지의 좌표, 이미지를 파라미터로 받는다.

입력변수

Coord 위치 좌표

Drawable 이미지에서 사용할 이미지

리턴값

없음

예제소스

Image icon = new Image(randomPoints(1)[0], getResources()

.getDrawable(R.drawable.image));

icon.setTitle("testIcon \n fesff");

// icon.setIconOffset(new Pixel(-100, 0));

int size = (int) (Math.random() * 50) + 50;

icon.setIconSize(new Pixel(size, size));

iconlayer.addItem(icon);

mapView.invalidate();

실행결과

Page 15: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

15

Lable

지도화면 위의 지정된 좌표에 문자열을 출력하는 클래스임

함수명 Label(String title, Coord coord)

라벨의 문자열, 좌표를 파라미터로 받는다

입력변수

Coord 위치 좌표

string 라벨에서 사용할 문구

리턴값

없음

함수명 Label(String title, Coord coord, int textSize, int textColor)

라벨의 문자열, 좌표, 문자 크기, 색을 파라미터로 받는다.

입력변수

Coord 위치 좌표

string 라벨에서 사용할 문구

int 글자 크기

int 글자 색상

리턴값

없음

예제소스

Label label = new Label("test Label", new Coord(960138.0f, 1945129.0f));

label.setTextSize(40);

label.setTextColor(Color.RED);

labelslayer.addItem(label);

실행결과

Page 16: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

16

Circle

지도화면 위의 지정된 좌표에 원을 출력하는 클래스임

함수명 Circle(Coord coord, int fillColor, float radius)

원의 좌표, 내부색상, 반지름을 파라미터로 받는다.

입력변수

Coord 위치 좌표

Int 내부 색상

int 원의 반지름 m 단위

리턴값

없음

예제소스

// 지도의 중심좌표를 가져옵니다.

// 현재 보이는 지도화면의 중심좌표를 가져오게 됩니다.

// 단위는 UTMK이고 지도좌표이기 때문에 리턴되는 객체타입은 Coord입니다.

mapCenter = mapView.getMapCenter();

// 중심점 좌표, 내부색상, 반경을 파라메터로 받는다.

// 색상값의 경우 android에서 사용하는 Color클래스의 상값을 사용한다.

// 반경값은 m단위로 환산한다.

circle = new Circle(mapCenter, Color.BLACK, 300);

Page 17: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

17

overlays.add(circle);

// mapview에 등록하고 화면 갱신 화면에 표시하고자 할 때

뷰객체에서 Overlay List를 받아서 해당 리스트에 추가하면

화면에 표시할 수 있습니다.

// 맵뷰에 추가하는것으로 바로 표시되지 않기 때문에 맵뷰를 한번 갱신합니다.

mapView.invalidate();

실행결과

Polygon

위에 다각형을 그릴 때 사용한다. 입력되는 좌표 값을 이용하여 삼각형, 사각형, 다각형을 그릴

수 있다. 생성된 Polygon의 객체를 이용하여 다각형 선의 색상 및 내부 색상과 투명도를 변경 시

킬 수 있다.

함수명 Polygon(Coord[] coordArray, int strokeColor, int fillColor, int strokeWidth)

도형의 좌표, 내부색상, 외부색상, 외곽선 굵기를 파라미터로 받는다.

입력변수

Coord[] 위치 좌표 배열

Int 내부 색상

int 외부 색상

Int 외곽선 굵기

Page 18: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

18

리턴값

없음

예제

// 지도의 중심좌표를 가져옵니다.

// 현재 보이는 지도화면의 중심좌표를 가져오게 됩니다.

// 단위는 UTMK이고 지도좌표이기 때문에 리턴되는 객체타입은 Coord입니다.

mapCenter = mapView.getMapCenter();

// polygon을 구성할 각 꼭지점 좌표 설정

// polygon은 지도좌표의 배열을 이용해서 그려지게 됩니다.

// 좌표의 구성은 시계방향, 반시계방향 모두 관계없습니다.

// 구성되는 방향이 중간에 변경이 되면 원하는 도형이 아닌

뒤틀린 도형이 나오게 됩니다.

Coord[] coords = new Coord[5];

coords[0] = new Coord(mapCenter.getX() - 200, mapCenter.getY() - 200);

coords[1] = new Coord(mapCenter.getX() + 200, mapCenter.getY() - 200);

coords[2] = new Coord(mapCenter.getX() + 200, mapCenter.getY() + 200);

coords[3] = new Coord(mapCenter.getX() - 200, mapCenter.getY() + 200);

coords[4] = new Coord(mapCenter.getX() - 200, mapCenter.getY() + 200);

// polygon의 각좌표와 내부색상, 테두리 색상, 테두리 두께를 설정

// 첫번째 파라매터로 polygon을 구성할 좌표배열이 입력됩니다.

// 좌표타입은 지도 기본 좌표타입인 UTMK로 넣어주셔야 합니다.

// 두번째 파라매터로 도형의 외곽선의 색상을 입력합니다.

// Color클래스를 이용하여 미리 정의된 색이나 임의의 색을 생성하면 됩니다.

// 색상이나 Color.parseColor(), Color.argb() 등의 메소드를 이용해

// int형 컬러값을 만들어 주면됩니다.

// 세번째 파라매터로 도형 내부의 색상을 입력합니다.

// 외곽선과 마찬가지로 Color클래스를 이용해서 입력하면 됩니다.

// 네번째 파라매터로 외곽선의 두께를 지정합니다.

// 두께는 픽셀단위로 입력하면 됩니다.

polygon = new Polygon(coords, Color.BLACK, Color.BLACK, 3);

// mapview에 등록하고 화면 갱신 화면에 표시하고자 할 때

맵뷰객체에서 Overlay List를 받아서 해당 리스트에 추가하면

화면에 표시할 수 있습니다.

mapView.getOverlays().add(polygon);

// 맵뷰에 추가하는것으로 바로 표시되지 않기 때문에 맵뷰를 한번 갱신합니다.

mapView.invalidate();

실행결과

Page 19: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

19

Polyline

경로 데이터를 표시하기 위한 오베레이 클래스이며 Overlay 클래스를 상속합니다. 단순한 경로 데

이터를 표시할 수 있다. 커스텀 폴리라인을 선택하여 선색상을 변경할 수 있습니다.

함수명 Polyline(Coord[] coordArray, int strokeWidth, int strokeColor)

구성 좌표배열, 선색상, 선 굵기를 파라미터로 받는다.

입력변수

Coord[] 위치 좌표 배열

Int 선 색상

Int 선 굵기

리턴값

없음

함수명 Polyline(ArrayList<Coord> coordArray, int strokeWidth, int strokeColor)

구성 좌표배열, 선색상, 선 굵기를 파라미터로 받는다.

입력변수

ArrayList<Coo

rd> 위치 좌표 리스트

Int 선 색상

Page 20: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

20

Int 선 굵기

리턴값

없음

예제

// 지도의 중심좌표를 가져옵니다.

mapCenter = mapView.getMapCenter();

// polyline을 구성할 각 꼭지점 좌표 설정

// polyline은 지도좌표의 배열을 이용해서 그려지게 됩니다.

coords = new Coord[3];

coords[0] = new Coord(mapCenter.getX() - 200, mapCenter.getY() - 200);

coords[1] = new Coord(mapCenter.getX() + 200, mapCenter.getY() - 200);

coords[2] = new Coord(mapCenter.getX() + 200, mapCenter.getY() + 200);

// polyline의 각좌표와 내부색상, 테두리 색상, 테두리 두께를 설정

// 첫번째 파라매터로 polygon을 구성할 좌표배열이 입력됩니다.

// 좌표타입은 지도 기본 좌표타입인 UTMK로 넣어주셔야 합니다.

// 두번째 파라매터로 도형의 외곽선의 색상을 입력합니다.

// Color클래스를 이용하여 미리 정의된 색이나 임의의 색을 생성하면 됩니다.

// 색상이나 Color.parseColor(), Color.argb() 등의 메소드를 이용해 int형 컬러값을 만들어

주면됩니다.

// 두께는 픽셀단위로 입력하면 됩니다.

polyline = new Polyline(coords, 3, Color.BLACK);

// mapview에 등록하고 화면 갱신

// 화면에 표시하고자 할 때 맵뷰객체에서 Overlay List를 받아서

// 해당 리스트에 추가하면 화면에 표시할 수 있습니다.

mapView.getOverlays().add(polyline);

// 맵뷰에 추가하는것으로 바로 표시되지 않기 때문에 맵뷰를 한번 갱신합니다.

mapView.invalidate();

실행결과

Page 21: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

21

Rectangle

지도화면 위에 사각형을 그리기 위한 클래스이다.

함수명

KRectangle(Coord coordLt, Coord coordRd, int strokeColor, int fillColor, int

strokeWidth)

사각형의 좌상단 좌표, 우하단 좌표, 외부 선색상, 내부 색상, 선굵기를

파라미터로 받는다.

입력변수

Coord 좌상단 좌표

Coord 우하단 좌표

Int 외부 선색상

int 내부 선색상

int 외부 선 굵기

리턴값

없음

예제

mapCenter = mapView.getMapCenter();

polygon1 = new KRectangle(mapCenter, new Coord(

mapCenter.getX() + 200, mapCenter.getY() - 200),

Color.GREEN, Color.WHITE , 3);

Page 22: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

22

overlays.add(polygon1);

mapView.invalidate();

실행결과

Page 23: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

23

2.2.3. 레이어 관리

MapEventListener

이벤트 전달을 위한 MapView의 이벤트 Listener 이다.

함수명 boolean onTouch(Pixel position)

화면에서 싱글 터치가 떨어졌을 때 수신한다.

입력변수

Pixel 화면상의 좌표

리턴값

boolean 싱글 터치 여부

예제

// 맵이벤트 리스너 설정

mapView.dispatchMapEvent(this);

// 줌레벨 설정

mapView.setZoomLevel(10);

// marker를 관리할 layer객체를 mapview에 등록

// marker의 경우 POI나 특정한 목적으로 이용하는 경우에 관리

목적으로 Layer클래스를 생성해서 별도로 관리를 할 수

있습니다. MarkersLayer클래스를 상속받아 구현해서 사용합니다.

// Layer클래스를 상속받아 구현하여 객체를 생성한뒤 객체를

맵뷰의 Overlay List에 등록을 하고 관리하고자 하는 Marker를

레이어에 등록하는 방법으로 사용합니다.

mapView.getOverlays().add(markerlayer);

// layer객체가 터치이벤트를 수신하도록 설정합니다.

markerlayer.dispatchOverlayEvent(this);

// marker가 위치할 좌표 설정(임의로 화면 중심)

Coord mapCenter = mapView.getMapCenter();

// marker 생성(기본으로 좌표만 주고 생성)

// Marker클래스는 기본제공되는 아이콘이 있어서 좌표만으로 생성이 가능

// Image클래스는 기본제공 아이콘이 없어서 추가 파라매터로

아이콘을 입력해야 합니다.

Marker marker = new Marker(mapCenter);

// marker를 터치했을 때 나타나게 될 말풍선의 내용을 설정

// Marker와 Image의 경우 Layer클래스로 관리를 하게 되면 기본적으로

// 말풍선이 나타나도록 되어있습니다. 말풍선이 나타나지 않게 하려면

Page 24: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

24

// 레이어객체에서 setEnableBalloon()메소드를 이용하여 옵션을 설정합니다.

marker.setTitle("test Marker");

// marker를 관리할 layer에 등록

markerlayer.addItem(marker);

// 바로 표시되지 않기 때문에 맵뷰를 한번 갱신합니다

mapView.invalidate();

실행결과

Page 25: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

25

함수명 boolean onDoubleTouch(Pixel position)

화면에서 더블 터치가 떨어졌을 때 수신한다

입력변수

Pixel 화면상의 좌표

리턴값

boolean 더블 터치 여부

함수명

boolean onMultiTouch(Pixel[] positionArray)

두 점 터치 된 수간부터 한 점이 화면에서 떨어질때까지 지속적으로

수신한다.

입력변수

Pixel[] 화면상의 좌표 배열

리턴값

boolean 두 점 이상 터치 여부

함수명

boolean onLongTouch(Pixel position)

한 지점을 길게 터지하고 있을 때 수신되며 화면에서 터치를 때지 않아도

발생한다.

입력변수

Pixel 화면상의 좌표 배열

리턴값

boolean 롱 터치 여부

함수명 boolean onChangeZoomLevel(boolean isZoomIn, int zoomlevel)

지도의 줌레벨 변화에 따른 이벤트 수신

입력변수

boolean 줌인 여부

int 현재 줌 레벨

리턴값

boolean 확대 / 축소 여부

함수명 boolean onMapInitializing(boolean isSuccess)

지도 초기화 이벤트 수신 파라미터로 성공(true) / 실패(false)

입력변수

Page 26: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

26

boolean 지도 initialize여부

리턴값

boolean 초기화 성공여부

함수명 boolean onBoundsChange(Bounds mapBounds)

지도 화면표시 영역 변경 이벤트 수신한다.

입력변수

Bounds 화면 영역

리턴값

boolean 화면 영역 변경 여부

OverlayListener

오버레이된 객체의 이벤트 Listener 이다.

함수명 boolean onTouch(Overlay overlay, float x, float y)

오버레이된 객체의 싱글 터치 이벤트를 수신한다.

입력변수

Overlay Overlay 객체

float 화면 X좌표

float 화면 Y좌표

리턴값

boolean 싱글 터치 여부

함수명 boolean onDoubleTouch(Overlay overlay, float x, float y)

오버레이된 객체의 더블 터치 이벤트를 수신한다.

입력변수

Overlay Overlay 객체

float 화면 X좌표

float 화면 Y좌표

리턴값

boolean 더블 터치 여부

함수명 boolean onLongTouch(Overlay overlay, float x, float y)

오버레이된 객체의 롱 터치 이벤트를 수신한다.

입력변수

Overlay Overlay 객체

float 화면 X좌표

Page 27: 지도제공 API 정의 - sgis.kostat.go.kr SDK-v1.0.pdf · ArrayList 위치 좌표 리스트 Int 선 색상 . 20 Int 선 굵기 리턴값 없음 예제 // 지도의

27

float 화면 Y좌표

리턴값

boolean 롱 터치 여부