+ All Categories
Home > Documents > 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView...

지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView...

Date post: 03-Jul-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
28
1 “SGIS 오픈플랫폼” 지도제공 API 정의 iOS Version 1.0
Transcript
Page 1: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

1

“SGIS 오픈플랫폼”

지도제공 API 정의 iOS

Version 1.0

Page 2: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

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.1.1. MapView ....................................................................................................... 6

2.2.2. 레이어 관리 .......................................................................................................... 12

2.2.2.1. Overlay ........................................................................................................ 12

2.2.2.2. InforWindowOverlay.................................................................................... 13

2.2.2.3. MarkerOverlay ............................................................................................. 15

2.2.2.4. ImageOverlay .............................................................................................. 16

2.2.2.5. LabelOverlay................................................................................................ 17

2.2.2.6. VectorOverlay .............................................................................................. 18

2.2.2.7. CircleOverlay ............................................................................................... 19

2.2.2.8. PolygonOverlay ........................................................................................... 20

2.2.2.9. PolylineOverlay ............................................................................................ 22

2.2.2.10. RectangleOverlay ...................................................................................... 23

2.2.3. 컨트롤 관리 .......................................................................................................... 25

2.2.3.1. MapViewDelegate ....................................................................................... 25

2.2.3.2. OverlayDelegate .......................................................................................... 28

목 차

Page 3: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

3

1. 개요

1.1. 목적

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

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

1.2. 고려사항

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

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

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

1.3. 서비스 개요

1.3.1. 서비스 요약

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

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

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

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

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

Page 4: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

4

2. API

2.1. API 목록

구분 클래스 API 비고

지도 생성 MapView

startMapService:(NSString*)key

consumerSecret:(NSString*)secret

checkStartMapService

clearAllCache

clearCache:(int)layerID

setCenterCoordinate:(Coord)coord

animated:(BOOL)animated

setAngle:(double)angle

animated:(BOOL)animated

getOverlays

addOverlay:(Overlay*)overlay

removeOverlay:(Overlay*)overlay

removeAllOverlays

removeAllInforWindowOverlays

convertCoordinate:(Coord) coordinate

convertCoordinate:(Coord) coordinate

inCoordType:(CoordType)inType

outCoordType:(CoordType)outType

convertPoint:(CGPoint) point

zoomToExtent:(KBounds)overlayBounds

showInforWindowOverlay:(Overlay *)overlay

레이어 관리

Overlay

center:(Coord) defaultCenter

getOverlayView

hitTest:(CGPoint) point Coord:(Coord)coord

Tolerance:(double)tolerance

isVector

getBounds

InforWindowOverlay

initWithOwner:(Overlay*)ownerOverlay

Size:(CGSize)size

setInforWindowTitle:(NSString *)title

frame:(CGRect)frame

Page 5: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

5

MarkerOverlay initWithType:(int)markerType

ImageOverlay initWithImage:(UIImage *)image

LabelOverlay

initWithText:(NSString *)text

Font:(UIFont*)font

setLabelText:(NSString*)text

VectorOverlay

setStrokeColor

setLineWidth

setLineType

CircleOverlay initWithCoord:(Coord)coord

Radius:(double)radius

PolygonOverlay initWithCoordList:(CoordList*)coordList

PolylineOverlay initWithCoordList:(CoordList*)coordList

RectangleOverlay initWithCoord:(Coord)leftTop

Coord:(Coord)rightBottom

컨트롤 관리

MapViewDelegate

mapTouchBegan:(MapView*)mapView

Events:(UIEvent*)event

mapTouchEnded:(MapView*)mapView

Events:(UIEvent*)event

mapTouchMoved:(MapView*)mapView

Events:(UIEvent*)event

mapTouched:(MapView*)mapView

Events:(UIEvent*)event

mapDoubleTouched:(MapView*)mapView

Events:(UIEvent*)event

mapMultiTouched:(MapView*)mapView

Events:(UIEvent*)event

mapLongTouched:(NSValue *)coord

mapStatusChanged:(NSNumber *)mapLoad

isZoom:(NSNumber *)isZoom

mapBoundsChanged:(MapView*)mapView

Bounds:(KBounds)bounds

OverlayDelegate

overlayTouched:(Overlay *)overlay

overlayDoubleTouched:(Overlay *)overlay

overlayInforWindowTouched:(Overlay

*)overlay

Page 6: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

6

2.2. API 정의

2.2.1. 지도 생성

2.2.1.1. MapView

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

줌인, 줌아웃등의 기능을 수행하고 관리하는 클래스임. 해당 클래스를 이용하여 지도를 생성한 뒤

에 사용을 하면 됨.

함수명

(void) startMapService:(NSString*)key consumerSecret:(NSString*)secret

consumer key 와 consumer secret 값을 이용하여 맵 인증을 하고 인증이

성공되면 config 파일을 읽어 와서 서비스를 시작하는 함수임.

입력변수

Key 사용관련 인증된 consumer kery 입력

Secret 사용관련 인증된 consumer secret 입력

리턴값

없음

예제

MapView* mapView = [[MapView alloc] init];

mapView.delegate = self;

NSString *consumerKey = @"--"; //전달받은 서비스ID 입력

NSString *consumerSecret = @"--"; //전달받은 서비스Secret 입력

//지도 실행 요청

[mapView startMapService: consumerKey consumerSecret: consumerSecret];

함수명

(int) checkStartMapService

맵 설정이 성공했는지 여부를 체크한다. 해당 함수를 이용하여 지도 생성이

정상적으로 되었는지 확인이 가능하다.

입력변수

없음

리턴값

int

0: 세팅 준비

1: 세팅 실패

2: 재시도 중

Page 7: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

7

3: 정상적으로 세팅 완료

함수명

(void) clearAllCache

모든 cache file 삭제 및 메모리 캐쉬를 초기화 한다. 지도 타일은 앱의

로컬폴더에 저장이 되며 해당 함수를 이용하여 로컬폴더에 저장된 지도

데이터들을 삭제할 수 있다.

입력변수

없음

리턴값

없음

예제

- (IBAction) clearAllCache:(id)sender {

[mapView clearAllCache];

}

함수명

(void) clearCache:(int)layerID

입력한 layerID (SOPMapType)의 cache file 삭제 및 메모리 캐쉬를 초기화 한다.

지도 타입별 앱의 로컬폴더에 저장된 지도 데이터들을 삭제할 수 있다.

입력변수

layerID SOPMapType에 정의된 지도 타입을 입력하면 되며 현재 지원되고 있는 지도

타입은 MapTypeStandard임.

리턴값

없음

함수명

(void) setCenterCoordinate:(Coord)coord animated:(BOOL)animated

화면에 보이는 지도의 중심점을 설정한다. Coord 로 중심점 좌표(UTMK)를

입력한다. 지도 좌표 (위도, 경도)를 입력하면 해당 지도 좌표를 중심으로

지도를 이동시킨다.

입력변수

coord 이동하고자 하는 지도의 좌표. 해당 좌표를 기준으로 지도화면의 중심좌표를

설정한다.

animated 지도 이동시 애니메이션 효과를 할 지 여부를 선택한다.

리턴값

없음

예제

- (IBAction) moveTest:(id)sender {

[mapView setCenterCoordinate:CoordMake(953803, 1953463) animated:YES];

}

Page 8: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

8

함수명

(void) setAngle:(double)angle animated:(BOOL)animated

화면에 보이는 지도의 회전값을 설정한다. angle 로 회전각을 입력하면 지도가

설정된 angle 에 맞추어 회전한다.

입력변수

angle 회전하고 싶은 각도를 입력.

animated 지도 회전시 애니메이션 효과를 할 지 여부를 선택한다.

리턴값

없음

함수명

(NSArray*) getOverlays

지도화면에 표출되고 있는 overlay 객체들을 반환한다. Overlay 객체들은 지도에

표출하기 위해 생성한 overlay 들이다.

입력변수

없음

리턴값

NSArray 현재 지도화면에 표출되고 있는 overlay 들의 집합

예제

//지도화면에 그려진 전체 overlay들의 개수를 확인

NSLog(@" overlay count : %lu", (unsigned long)[[mapView getOverlays] count]);

함수명

(BOOL) addOverlay:(Overlay*)overlay

지도화면에 overlay 객체를 추가한다. 생성한 mapView 에 addOverlay 가 되어야

지도에 추가한 overlay 가 보여진다.

입력변수

overaly 추가할 overlay 객체

리턴값

BOOL 정상적으로 추가되었는 여부

예제

- (IBAction) addMarker:(id)sender {

MarkerOverlay* overlay = [[MarkerOverlay alloc] initWithType:0];

overlay.coord = mapView.centerCoordinate;

overlay.delegate = self;

[mapView addOverlay:overlay]; //지도화면에 overlay 추가

[overlay release];

}

함수명 (void) removeOverlay:(Overlay*)overlay

Page 9: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

9

지도화면에 추가된 overlay 객체를 삭제한다.

입력변수

overaly 삭제하고 싶은 overlay 객체

리턴값

없음

함수명 (void) removeAllOverlays

지도화면에 추가된 overlay 객체를 모두 삭제한다.

입력변수

없음

리턴값

없음

예제

- (IBAction) clearOverlays:(id)sender {

[mapView removeAllOverlays];

}

함수명 (void) removeAllInforWindowOverlays

지도화면에 추가된 모든 inforWindowOverlay 객체를 삭제한다.

입력변수

없음

리턴값

없음

함수명 (CGPoint) convertCoordinate:(Coord) coordinate

지도좌표(UTMK 위도, 경도)를 화면좌표(x, y)로 변환한다.

입력변수

coordinate 변환하고자하는 지도좌표(UTMK)의 위도, 경도

리턴값

CGPoint 변환된 화면좌표 x, y 값

예제

//현재 화면에 보여지고 있는 지도의 중심 화면 좌표 취득

CGPoint centerPos = [mapVIew convertCoordinate:mapView.centerCoordinate];

함수명 (Coord) convertCoordinate:(Coord) coordinate inCoordType:(CoordType)inType

outCoordType:(CoordType)outType

Page 10: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

10

inType 으로 전달된 지도 좌표를 outType 으로 변환한다. 예를 들어 inType 으로

UTMK 를 선택하고 UTMK 좌표를 coordinate 로 입력하고 outType 으로

WGS84를 선택하여 실행하면 UTMK 좌표가 WGS84 좌표로 변환된다.

입력변수

coordinate 변환할 지도좌표 입력

inType 입력한 지도좌표의 좌표계 타입 입력

outType 변환을 원하는 지도좌표의 좌표계 타입 입력

리턴값

Coord 좌표계에 맞게 변환된 지도좌표

예제

- (void)mapLongTouched:(NSValue *)coord {

Coord tmp;

[coord getValue:&tmp];

NSLog(@"%f, %f", tmp.x, tmp.y);

Coord outcoord = [mapView convertCoordinate:tmp inCoordType:KCoordType_UTMK

outCoordType:KCoordType_WGS84];

NSLog(@"Convert Coordinate - x : %f, y : %f", outcoord.x, outcoord.y);

}

함수명 (Coord) convertPoint:(CGPoint) point

화면좌표(x, y)를 지도좌표(UTMK 위도, 경도)로 변환한다.

입력변수

point 변환할 화면좌표의 x, y값 입력

리턴값

Coord 변환된 지도좌표의 위도, 경도 값

예제

//화면좌표 취득

CGPoint centerPos = [mapView convertCoordinate:mapView.centerCoordinate];

centerPos.x += (tmp.frame.origin.x); //좌표 조정

[mapView setCenterCoordinate:[mapView convertPoint:centerPos]]; //지도좌표 세팅

함수명

(void) zoomToExtent:(KBounds)overlayBounds

주어진 영역을 한 화면에 보여줄 수 있도록 지도 영역 및 레벨을 조정한다.

입력한 값에 맞추어 지도화면이 변환된다.

입력변수

Overlay

Bounds 원하는 영역의 minx, miny, maxx, maxy 값을 입력

Page 11: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

11

리턴값

없음

예제

- (void) overlayDoubleTouched:(Overlay *)overlay {

[mapView zoomToExtent:overlay.getBounds]; //overlay double touch 시 화면 조정

}

함수명 (void) showInforWindowOverlay:(Overlay *)overlay

전달된 overlay 객체를 검색하여 inforWindow Overlay 를 화면에 표시한다.

입력변수

overlay 정보창을 띄워줄 overlay 객체

리턴값

없음

Page 12: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

12

2.2.2. 레이어 관리

2.2.2.1. Overlay

Overlay들의 최상위 클래스로 Marker, Image, Label, Vector Overlay들에서 상속하고 있으며 지도에

표시하고 싶은 이미지, 도형, 선들을 그릴 때 사용된다.

함수명

(Coord) center:(Coord) defaultCenter

지도화면에 그리기위한 Overlay 객체의 중심점(UTMK 위도, 경도 좌표)을

설정한다. 해당 중심점을 기준으로 overaly 가 그려진다.

입력변수

defaultCenter Overlay 객체의 중심 지도좌표(위도, 경도)

리턴값

Coord 설정된 값의 위도, 경도 지도 좌표

함수명

(UIView*) getOverlayView

각각의 Overlay 객체들이 view 를 포함하고 있다면 해당 veiw 의 객체를

반환한다. View 가 없으면 null 값이 리턴된다.

입력변수

없음

리턴값

UIView Overlay 가 포함하고 있는 UIVeiw 객체

함수명

(BOOL) hitTest:(CGPoint) point Coord:(Coord)coord Tolerance:(double)tolerance

입력한 좌표들이 지도위에 그려진 overlay 객체의 영역안에 있는 확인한다.

입력으로 화면좌표(x, y) 또는 지도좌표(UTMK 위도, 경도)를 받는다.

입력변수

point x, y 화면좌표 입력 (선택 입력)

coord 위도, 경도 지도좌표 입력 (선택 입력)

tolerance 허용오차 입력 (선택 입력)

리턴값

BOOL Overlay 객체의 영역안에 있는지 여부

함수명 (BOOL) isVector

Overlay 가 vector type(circle, polygon, polyline)인지 체크한다.

입력변수

Page 13: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

13

없음

리턴값

BOOL Vector type 인지 체크한 결과 값

함수명 (KBounds) getBounds

Overlay 의 bounds 를 반환한다.

입력변수

없음

리턴값

KBounds Overlay 의 Bounds 값

2.2.2.2. InforWindowOverlay

지도화면위에 정보를 표시하기 위한 창을 띄워준다. 해당 클래스는 이미 선언된 overlay에 종속적

인 클래스로서 독립적으로 수행될 수 없다. 예를 들어 markerOveraly를 선언하여 지도에 그린뒤

에 inforWindowOverlay를 markerOverlay에 종속적으로 그릴 수 있다.

함수명

(id) initWithOwner:(Overlay*)ownerOverlay Size:(CGSize)size

inforWindowOverlay 를 해당 overaly 와 size 로 초기화 한다. 초기화됨과

동시에 지도화면에 그려진다.

입력변수

ownerOverlay inforWindowOverlay가 표출될 overlay 객체

size inforWindowOverlay의 width, height 설정

리턴값

id 초기화된 객체

예제

- (void)overlayTouched:(Overlay *)_overlay {

if(_overlay.tag ==1) { //객체생성시 설정한 태그를 확인한다.

//InforWindow 객체 생성한다.

InforWindowOverlay* overlay = [[InforWindowOverlay alloc]

initWithOwner:_overlay Size:CGSizeMake(184,67)];

overlay.coord = _overlay.coord; //표시할 지도 좌표 설정.

UIView* overlayView = [overlay overlayView];

//InforWindow 이미지 설정.

UIImageView* imageView = [[UIImageView alloc] initWithImage:

[UIImage imageNamed:@"defaultInforWindow.png"]];

imageView.userInteractionEnabled = YES;

Page 14: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

14

[overlayView addSubview:imageView]; //이미지 추가.

//Button event 추가.

UIButton* callOutButton = [UIButton buttonWithType:UIButtonTypeCustom];

callOutButton.frame = CGRectMake(11, 6, 163, 36);

[imageView addSubview:callOutButton];

[callOutButton addTarget:self action:@selector(onInforWindowButton:)

forControlEvents:UIControlEventTouchUpInside];

//InforWindow 텍스트 설정.

UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(10,10,140,20)];

label.text = @"터치 InforWindow";

label.textAlignment = NSTextAlignmentCenter;

label.backgroundColor = [UIColor clearColor];

label.textColor = [UIColor greenColor];

[callOutButton addSubview:label];

[label release];

[mapView addOverlay:overlay]; //지도에 오버레이를 추가한다.

[overlay release];

}

}

예제 실행 결과 화면

함수명 (void) setInforWindowTitle:(NSString *)title frame:(CGRect)frame

inforWindowOverlay 에 인자로 전달된 문자열을 출력한다.

입력변수

Page 15: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

15

title 정보창에 표시할 문자열

frame 정보창에 표시할 문자열의 frame 설정

리턴값

없음

2.2.2.3. MarkerOverlay

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

함수명

(id) initWithType:(int)markerType

Marker overlay 를 초기화하고 지도 위에 마커를 그리는 기능을 한다. 현재

marker type 은 red pin 만 지원한다.

입력변수

markerType 표시하고 싶은 marker type 입력. 현재는 red pin만 지원함.

리턴값

id 초기화된 객체

예제

- (IBAction) addMarker:(id)sender {

//마커 오버레이 객체를 생성한다.

MarkerOverlay* overlay = [[MarkerOverlay alloc] initWithType:0];

overlay.coord = mapView.centerCoordinate; //마커를 표시할 좌표를 설정.

overlay.delegate = self;

[mapView addOverlay:overlay]; //지도에 오버레이를 추가한다.

[overlay release];

}

예제 실행 결과 화면

Page 16: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

16

2.2.2.4. ImageOverlay

지도화면 위의 지정된 좌표에 image를 그리기 위한 클래스임.

함수명 (id) initWithImage:(UIImage *)image

Image overlay 를 초기화하고 지도 위에 입력한 이미지를 그리는 기능을 한다.

입력변수

image 지도위에 표시하고 싶은 이미지 입력

리턴값

id 초기화된 객체

예제

- (IBAction) addImage:(id)sender {

//이미지 오버레이 객체를 생성한다.

ImageOverlay* overlay = [[ImageOverlay alloc] initWithImage:

[UIImage imageNamed:@"smile.png"]];

overlay.coord = mapView.centerCoordinate; //이미지를 표시할 좌표를 설정.

overlay.delegate = self;

[mapView addOverlay:overlay]; //지도에 오버레이를 추가한다.

[overlay release];

}

예제 실행 결과 화면

Page 17: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

17

2.2.2.5. LabelOverlay

지도화면 위의 지정된 좌표에 텍스트를 표출하기 위한 클래스임.

함수명 (id) initWithText:(NSString *)text Font:(UIFont*)font

Label overlay 를 텍스트와 폰트로 초기화한다.

입력변수

text 지도위에 표시하고 문자열 입력

font 문자열의 font 설정

리턴값

id 초기화된 객체

함수명 (void) setLabelText:(NSString*)text

Label overlay 의 텍스트를 입력한 텍스트로 입력하거나 변경한다.

입력변수

text 지도위에 표시하고 문자열 입력

리턴값

없음

Page 18: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

18

2.2.2.6. VectorOverlay

Vector overlay(circle, polygon, polyline)들의 상위 클래스이다. Circle, polygon polyline들은

vectorOveraly를 부모 클래스로 사용함으로써 지도에 선과 도형을 그릴 수 있다.

함수명

(CGColorRef) setStrokeColor

Vector overlay 들의 선 색을 설정한다. 값 설정 시 아래와 같은 구현이

필요하다.

입력변수

CGColorRef

색을 설정하기 위한 컬러 값을 입력한다.

Ex)

CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();

CGColorRef stroke = CGColorCreate(rgb, (CGFloat[]){0,0,0,1});

overlay.strokeColor = stroke;

CGColorSpaceRelease(rgb);

CFRelease(stroke);

리턴값

없음

함수명 (float) setLineWidth

Vector overlay 들의 선 굵기를 설정한다.

입력변수

float 원하는 선 굵기 입력

리턴값

없음

함수명 (OverlayLineType) setLineType

Vector overlay 들의 선 타입을 설정한다. 실선과 점선을 설정할 수 있다.

입력변수

float

원하는 선 타입 입력

- kLineType_Solid: 실선 (Default)

- kLineType_Dash: 점선

리턴값

없음

Page 19: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

19

2.2.2.7. CircleOverlay

지도화면 위의 지정된 좌표를 기준점으로 원을 그리기 위한 클래스이다. 원안의 색상, 원의 선 색

상, 선 굵기들을 설정하여 그릴 수 있다.

함수명 (id) initWithCoord:(Coord)coord Radius:(double)radius

원의 중심점과 반경값을 설정하여 지도 위에 원을 그린다.

입력변수

coord 원의 중심좌표 입력 (위도, 경도 좌표)

radius 반경값 입력

리턴값

id 초기화된 객체

예제

- (IBAction) addCircle:(id)sender {

//Circle 오버레이 객체를 생성하고 원의 중심 좌표와 반경을 설정한다.

CircleOverlay* overlay = [[CircleOverlay alloc]

initWithCoord:mapView.centerCoordinate Radius:100];

overlay.lineWidth =1; //선 굵기 설정.

overlay.delegate = self;

[mapView addOverlay:overlay]; //지도에 오버레이를 추가한다.

[overlay release];

}

예제 실행 결과 화면

Page 20: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

20

2.2.2.8. PolygonOverlay

지도화면 위에 다각형의 도형을 그리기 위한 클래스이다. 다각형의 선 색상, 선 굵기, 내부 색상

들을 설정하여 그릴 수 있다.

함수명 (id) initWithCoordList:(CoordList*)coordList

다각형의 꼭짓점 리스트를 기반으로 다각형을 그린다.

입력변수

coordList 다각형의 꼭짓점 좌표들의 리스트를 입력

리턴값

id 초기화된 객체

예제

- (IBAction) addPolygon:(id)sender {

CoordList* coordList = [[[CoordList alloc] init] autorelease];

double size =90;

Coord coord = mapView.centerCoordinate; //지도 중심 좌표를 가져 옴.

//선들의 시작과 끝점 좌표를 입력한다.

[coordList addCoord:CoordMake(coord.x-size,coord.y-size)];

[coordList addCoord:CoordMake(coord.x+size,coord.y-size)];

[coordList addCoord:CoordMake(coord.x+size,coord.y+size)];

Page 21: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

21

//폴리곤 오버레이 객체를 생성한다.

PolygonOverlay* overlay = [[PolygonOverlay alloc] initWithCoordList:coordList];

overlay.lineWidth =2; //다각형의 선의 굵기 설정.

overlay.delegate = self;

//다각형 외부 선의 색상(RGB) 설정

CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();

CGColorRef stroke = CGColorCreate(rgb, (CGFloat[]){0,0,1,1});

overlay.strokeColor = stroke;

//다각형안의 내부 색상(RGB) 및 투명도(alpha) 설정

CGColorRef fill = CGColorCreate(rgb, (CGFloat[]){1,1,0,0.4});

overlay.fillColor = fill;

CGColorSpaceRelease(rgb);

CFRelease(stroke);

CFRelease(fill);

[mapView addOverlay:overlay]; //지도에 오버레이를 추가한다.

[overlay release];

}

예제 실행 결과 화면

Page 22: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

22

2.2.2.9. PolylineOverlay

지도화면 위에 여러 개 좌표들의 점들을 연결하는 선을 그리는 클래스이다. 선 색상, 선 굵기들을

설정하여 그릴 수 있다.

함수명 (id) initWithCoordList:(CoordList*)coordList

입력된 좌표들을 기반으로 좌표점들을 연결하는 선을 그린다.

입력변수

coordList 연결하기 위한 선분의 양쪽 끝 좌표들의 리스트를 입력

리턴값

id 초기화된 객체

예제

- (IBAction)addpolyLine: (id)sender {

CoordList* coordList = [[[CoordList alloc] init] autorelease];

double size=100;

Coord coord = mapView.centerCoordinate; //지도 중심 좌표를 가져 옴.

//선들의 시작과 끝점 좌표를 입력한다.

[coordList addCoord:CoordMake(coord.x-size,coord.y-size)];

[coordList addCoord:CoordMake(coord.x+size,coord.y-size)];

[coordList addCoord:CoordMake(coord.x+size,coord.y+size)];

[coordList addCoord:CoordMake(coord.x-size,coord.y+size)];

//폴리라인 오버레이 객체를 생성한다.

PolylineOverlay* overlay = [[PolylineOverlay alloc] initWithCoordList:coordList];

overlay.lineWidth =2; //선의 굵기 설정.

overlay.lineType = LineType_Dash; //점선 또는 선 타입 설정.

overlay.delegate = self;

[mapView addOverlay:overlay]; //지도에 오버레이를 추가한다.

[overlay release];

}

예제 실행 결과 화면

Page 23: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

23

2.2.2.10. RectangleOverlay

지도화면 위에 사각형을 그리기 위한 클래스이다. 사각형의 선 색사으 선 굵기, 내부 색상들을 설

정하여 그릴 수 있다.

함수명

(id) initWithCoord:(Coord)leftTop Coord:(Coord)rightBottom

지도위에 그리고자하는 사각형의 왼쪽 위 모서리 좌표와 오른쪽 아래의 모서리

좌표를 입력하면 사각형이 그려진다.

입력변수

leftTop 사각형의 왼쪽 위의 지도 좌표 입력

rightBottom 사각형의 오른쪽 아래의 지도 좌표 입력

리턴값

id 초기화된 객체

예제

- (IBAction) addRectangle:(id)sender {

//사각형을 그릴 좌표를 설정한다. 사각형의 왼쪽 위, 오른쪽 아래 좌표를 입력

double size = 150;

Coord leftTopCoord = CoordMake(mapView.centerCoordinate.x-size,

mapView.centerCoordinate.y-size);

Coord rightBottomCoord = CoordMake(mapView.centerCoordinate.x+size,

mapView.centerCoordinate.y+size);

Page 24: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

24

//Rectangle 오버레이 객체를 생성한다.

RectangleOverlay* overlay = [[RectangleOverlay alloc]

initWithCoord:leftTopCoord Coord:rightBottomCoord];

overlay.lineWidth =3; //선 굵기 설정.

overlay.delegate = self;

//사각형의 외부 선의 색상(RGB) 설정

CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();

CGColorRef stroke = CGColorCreate(rgb, (CGFloat[]){0,1,1,1});

overlay.strokeColor = stroke;

//사각형의 내부 색상(RGB) 및 투명도(alpha) 설정

CGColorRef fill = CGColorCreate(rgb, (CGFloat[]){1,0,0,0.8});

overlay.fillColor = fill;

CGColorSpaceRelease(rgb);

CFRelease(stroke);

CFRelease(fill);

[mapView addOverlay:overlay]; //지도에 오버레이를 추가한다.

[overlay release];

}

예제 실행 결과 화면

Page 25: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

25

2.2.3. 컨트롤 관리

2.2.3.1. MapViewDelegate

이벤트 전달을 위한 MapView의 delegate이다. 생성한 mapView에서 상위 view로 해당 이벤트들

을 전달한다. 해당 이벤트들을 받아 지도를 컨트롤하거나 변경할 수 있다.

함수명 (void) mapTouchBegan:(MapView*)mapView Events:(UIEvent*)event

지도에 대한 touch 가 시작되었을 때 발생된다.

입력변수

없음

리턴값

mapView 현재 터치 이벤트가 발생되고 있는 mapView 객체

event 터치 이벤트

함수명 (void) mapTouchEnded:(MapView*)mapView Events:(UIEvent*)event

지도에 대한 touch 가 종료되었을 때 발생된다

입력변수

없음

리턴값

mapView 현재 터치 이벤트가 발생되고 있는 mapView 객체

event 터치 이벤트

함수명 (void) mapTouchMoved:(MapView*)mapView Events:(UIEvent*)event

지도에 대한 touch 가 이동되었을 때 발생된다

입력변수

없음

리턴값

mapView 현재 터치 이벤트가 발생되고 있는 mapView 객체

event 터치 이벤트

함수명 (void) mapTouched:(MapView*)mapView Events:(UIEvent*)event

지도가 touch 되었을 때 발생된다.

입력변수

없음

리턴값

Page 26: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

26

mapView 현재 터치 이벤트가 발생되고 있는 mapView 객체

event 터치 이벤트

함수명 (void) mapDoubleTouched:(MapView*)mapView Events:(UIEvent*)event

지도에 대한 touch 가 double touch 되었을 때 발생된다

입력변수

없음

리턴값

mapView 현재 터치 이벤트가 발생되고 있는 mapView 객체

event 터치 이벤트

함수명 (void) mapMultiTouched:(MapView*)mapView Events:(UIEvent*)event

지도에 대한 touch 가 한번에 다중으로 되었을 때 발생된다

입력변수

없음

리턴값

mapView 현재 터치 이벤트가 발생되고 있는 mapView 객체

event 터치 이벤트

함수명 (void) mapLongTouched:(NSValue *)coord

지도에 대한 touch 가 일정시간 지속 되었을 때 발생된다

입력변수

없음

리턴값

coord Long touched 된 곳의 지도좌표

예제

- (void)mapLongTouched:(NSValue *)coord {

//지도화면 long touch 시 touch하고 있는 영역의 지도 좌표를 반환한다.

Coord tmp;

[coord getValue:&tmp];

//지도 좌표 타입 변환

Coord outcoord = [mapView convertCoordinate:tmp

inCoordType:CoordType_UTMK outCoordType:CoordType_WGS84];

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"long touch"

message:[NSString stringWithFormat:@"x : %f, y : %f", outcoord.x, outcoord.y]

delegate:nil cancelButtonTitle:nil otherButtonTitles:@"OK",nil];

Page 27: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

27

[alert show];

[alert release];

}

예제 실행 결과 화면

함수명

(void) mapStatusChanged:(NSNumber *)mapLoad isZoom:(NSNumber *)isZoom

지도의 상태가 변경되면 발생된다. 지도이동 상태 및 줌 레벨이 변경되면

발생된다.

지도이동 상태는 이동시작(0), 이동중(1), 이동완료(2)로 구분된다.

입력변수

없음

리턴값

mapLoad 이동시작(0), 이동중(1), 이동완료(2)로 구분되어 전달

isZoom Zoom 인지 여부

함수명 (void) mapBoundsChanged:(MapView*)mapView Bounds:(KBounds)bounds

지도의 bound 가 변경되었을 때 발생된다.

입력변수

없음

리턴값

mapView 현재 터치 이벤트가 발생되고 있는 mapView 객체

bounds 변경된 bounds

Page 28: 지도제공 API 정의 · 2019-03-18 · 2.2. API 정의 2.2.1. 지도 생성 2.2.1.1. MapView iOS기기들에 쉽게 지도 기능을 구현할 수 있도록 지도타일 이미지

28

2.2.3.2. OverlayDelegate

이벤트 전달을 위한 Overlay의 delegate이다. 생성한 mapView를 통해 상위 view로 전달되며 해

당 이벤트들을 통하여 overalay들을 컨트롤하거나 변경할 수 있다.

함수명 overlayTouched:(Overlay *)overlay

지도위에 그려진 overlay 에 한 번의 touch 가 발생되면 호출된다.

입력변수

없음

리턴값

overlay Touch 가 발생된 overlay 객체

함수명 overlayDoubleTouched:(Overlay *)overlay

지도위에 그려진 overlay 에 두 번의 touch 가 발생되면 호출된다.

입력변수

없음

리턴값

overlay Double Touch 가 발생된 overlay 객체

함수명 overlayInforWindowTouched:(Overlay *)overlay

지도위에 그려진 overlay 의 inforWindow 에 touch 가 발생되면 호출된다.

입력변수

없음

리턴값

overlay Touch 가 발생된 overlay 객체


Recommended