iOS용 라이브러리

iOS용 Maps 라이브러리에서 제공하는 클래스에 대한 정보를 제공합니다. 라이브러리에서는 지도를 화면에 표시하기 위한 지도 메인 클래스와 지도 위에 오버레이 데이터를 표시하기 위한 오버레이 클래스, 그리고 데이터 클래스를 제공합니다.

SDK 및 샘플코드 >

API 호출 예제

iOS Maps API 개발을 위한 준비사항은 다음과 같습니다.

  • XCode에서 프로젝트 생성: 이때 입력하는 ‘Bundle Identifier’는 애플리케이션 등록설정의 iOS Bundle ID와 반드시 일치하도록 주의 합니다.
  • https://github.com/NaverCloudPlatform/maps.ios에서 SDK를 다운로드합니다.
  • SDK의 NMapViewerSDK 프레임웍과 ApiGatewayMac 프레임웍을 프로젝트에 추가합니다. NMapViewerSDK는 Linked Frameworks로 ApiGatewayMac은 Embedded Binaries로 등록해야 합니다. Embedded Binaries로 등록하면 자동으로 Linked Frameworks 에도 등록됩니다. 프레임웍은 SDK의 Frameworks 폴더에 있습니다.

  • 프로젝트 Build 설정에 아래 설정을 추가합니다.

  • Linking > Other Linker Flags에 -ObjC -lxml2 플래그를 추가합니다.
  • Search Paths > Framework Search Paths에 NMapViewerSDK, ApiGatewayMac 프레임웍이 있는 폴더가 추가되어 있는지 확인합니다.

  • 프로젝트 타겟의 Build Phases에 아래 설정을 추가합니다.

  • New Run Script Phases에 strip-frameworks.sh 스크립트를 추가합니다.
  • 스크립트의 위치에 따라 경로명을 조정해야 합니다.

  • Info.plist에 아래 설정을 추가합니다.

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

<key>LSApplicationCategoryType</key>
<string>NSLocationWhenInUseUsageDescription</string>
  • Swift를 이용하는 경우, 아래 작업이 추가로 필요합니다.

  • Objective-C Bridging Header를 아래 내용으로 생성합니다.

#ifndef your_project_Bridging_Header_h
#define your_project_Bridging_Header_h

#import <NMapViewerSDK/NMapView.h>
#import <NMapViewerSDK/NMapLocationManager.h>

#endif
  • 프로젝트 Build 설정에 아래 설정을 추가합니다.
    • Swift Compiler - General > Objective-C Bridging Header에 위에서 생성한 헤더파일을 추가합니다.
// 네이버 지도만 화면으로 띄우는 간단한 예제입니다.(파일명: MapViewController.m)
#import "MapViewController.h"
#import <NMapViewerSDK/NMapView.h>
#define kClientID @" YOUR_CLIENT_ID" //get your clientID

@interface ViewController () <NMapViewDelegate, NMapPOIdataOverlayDelegate>
@property (nonatomic, strong) NMapView *mapView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // create map view
    self.mapView = [[NMapView alloc] initWithFrame:self.view.bounds];
    // set delegate for map view
    [self.mapView setDelegate:self];
    // set Client ID for Open MapViewer Library
    [self.mapView setClientId:kClientID];
    [self.view addSubview:self.mapView];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

#pragma mark NMapViewDelegate Method

- (void) onMapView:(NMapView *)mapView initHandler:(NMapError *)error {

    if (error == nil) { // success
        // set map center and level
        [self.mapView setMapCenter:NGeoPointMake(126.978371, 37.5666091) atLevel:11];
        [self.mapView setMapEnlarged:YES mapHD:YES];
    } else { // fail
        NSLog(@"onMapView:initHandler: %@", [error description]);
    }
}

#pragma mark NMapPOIdataOverlayDelegate

- (UIImage *) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay imageForOverlayItem:(NMapPOIitem *)poiItem selected:(BOOL)selected {
    return nil;
}

- (CGPoint) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay anchorPointWithType:(NMapPOIflagType)poiFlagType {
    return CGPointZero;
}

- (UIImage*) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay imageForCalloutOverlayItem:(NMapPOIitem *)poiItem
           constraintSize:(CGSize)constraintSize selected:(BOOL)selected
imageForCalloutRightAccessory:(UIImage *)imageForCalloutRightAccessory
          calloutPosition:(CGPoint *)calloutPosition calloutHitRect:(CGRect *)calloutHitRect {
    return nil;
}

- (UIImage*) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay imageForCalloutOverlayItem:(NMapPOIitem *)poiItem
            constraintSize:(CGSize)constraintSize selected:(BOOL)selected
imageForCalloutRightAccessory:(UIImage *)imageForCalloutRightAccessory
            calloutPosition:(CGPoint *)calloutPosition calloutHitRect:(CGRect*)calloutHitRect {
    return nil;
}

- (CGPoint) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay calloutOffsetWithType:(NMapPOIflagType)poiFlagType {
    return CGPointZero;
}

@end

Data 클래스

NGeoPoint

  • Description
    지도 상의 경위도 좌표를 나타내는 클래스입니다.

  • Constructor

구문 설명
NGeoPoint(double longitude, double latitude) 경위도 좌표로 생성
  • Fields
구문 설명
double longitude 경도
double latitude 위도

NMapError

  • Initializer
    에러 코드와 에러 메시지를 나타내는 클래스입니다.

  • Constructor

구문 설명
(id) initWithCode:(int)code message:(NSString *)message 에러 코드와 에러 메시지로 초기화
  • Properties
구문 설명
@property (nonatomic, assign) int code 에러 코드
@property (nonatomic, retain) NSString *message 에러 메시지

NMapPlacemark

  • Description
    경위도 좌표를 주소로 변환하는 메서드의 콜백 인터페이스로 전달되는 클래스입니다. 주소는 번지를 포함하지 않습니다.

  • Initializer

구문 설명
(id) initWithLocation:(NGeoPoint)location addressDictionary:(NSDictionary *)addressDictionary 경위도 좌표와 해당 주소로 초기화
  • Properties
구문 설명
@property (nonatomic, readonly) NSString *doName 주소의 광역시/도를 나타낸다.
@property (nonatomic, readonly) NSString *siName 주소의 시/군/구를 나타낸다.
@property (nonatomic, readonly) NSString *dongName 주소의 읍/면/동을 나타낸다.
@property (nonatomic, readonly) NSString *address 주소를 반환한다.

NMapPlacemark

  • Description
    경위도 좌표를 주소로 변환하는 메서드의 콜백 인터페이스로 전달되는 클래스입니다. 주소는 번지를 포함하지 않습니다.

  • Initializer

구문 설명
(id) initWithLocation:(NGeoPoint)location addressDictionary:(NSDictionary *)addressDictionary 경위도 좌표와 해당 주소로 초기화
  • Properties
구문 설명
@property (nonatomic, readonly) NSString *doName 주소의 광역시/도를 나타낸다.
@property (nonatomic, readonly) NSString *siName 주소의 시/군/구를 나타낸다.
@property (nonatomic, readonly) NSString *dongName 주소의 읍/면/동을 나타낸다.
@property (nonatomic, readonly) NSString *address 주소를 반환한다.
  • Methods
구문 설명
String toString() 주소를 반환한다.

NMapLocationManager

  • Description
    단말기의 현재 위치 탐색과 나침반 기능을 사용하기 위한 클래스입니다. 내부적으로 시스템에서 제공하는 CLLocationManager 클래스를 사용합니다. 나침반 기능은 현재 위치 탐색 상태에서만 사용 가능합니다.

  • Constants
    현재 위치 탐색 및 나침반 모니터링 실패에 대한 에러 종류는 아래와 같습니다.

구문 설명
NMapLocationManagerErrorTypeTimeout 일정 시간 이내에 현재 위치 탐색 실패
NMapLocationManagerErrorTypeUnavailableArea 현재 위치를 지도에서 지원하지 않음
NMapLocationManagerErrorTypeDenied 현재 위치 탐색이 거부됨
NMapLocationManagerErrorTypeUnknown 알 수 없는 오류로 현재 위치 탐색 실패
NMapLocationManagerErrorTypeHeading 나침반 모니터링 실패
  • Properties
구문 설명
@property (nonatomic, readonly) CLLocation *location 현재 위치에 대한 정보를 나타낸다.
  • Methods
구문 설명
(NMapLocationManager *) getSharedInstance Singleton 객체를 반환한다.
(void) setDelegate:(id)delegate 현재 위치 및 나침반 상태 변경 시 호출될 객체를 설정한다.
(void) startContinuousLocationInfo 현재 위치 탐색을 시작한다.
(void) stopUpdateLocationInfo 현재 위치 탐색을 종료한다.
(void) suspendUpdateLocationInfo 현재 위치 탐색을 일시 중지한다.
(void) resumeUpdateLocationInfo 현재 위치 탐색을 재개한다.
(BOOL) isUpdateLocationStarted 현재 위치 탐색이 시작 여부를 반환한다.
(BOOL) isUpdateLocationSuspended 현재 위치 탐색 일시 중지 여부를 반환한다.
(BOOL) isTrackingEnabled 현재 위치 탐색 중인지 여부를 반환한다.
(BOOL) headingAvailable 단말기의 나침반 기능 지원 여부를 반환한다.
(BOOL) isHeadingUpdateStarted 나침반 모니터링 중인지 여부를 반환한다.
(void) startUpdatingHeading 나침반 모니터링을 시작한다.
(void) stopUpdatingHeading 나침반 모니터링을 종료한다.
  • Protocol – NMapLocationManagerDelegate
    단말기의 현재 위치 또는 나침반 상태 변경 시 호출되는 프로토콜 정의합니다.
구문 설명
(void) locationManager:(NMapLocationManager )locationManager didUpdateToLocation:(CLLocation )location 현재 위치 변경 시 호출된다. location 객체에 변경된 위치 정보가 전달된다.
(void) locationManager:(NMapLocationManager *)locationManager didFailWithError:(NMapLocationManagerErrorType)errorType 현재 위치 탐색 실패 시 호출된다. 실패 원인은 errorType으로 전달된다.
(void) locationManager:(NMapLocationManager )locationManager didUpdateHeading:(CLHeading )heading 나침반 각도 변경 시 호출된다. heading 객체에 각도 정보가 전달된다.

Map Main 클래스

NMapView

  • Description
    지도 데이터를 화면에 표시하는 뷰 클래스이며 UIView 클래스를 상속받습니다. 본 클래스에서 관리하는 지도 데이터는 지도 이미지 이외에도 지도 위에 표시되는 오버레이 객체를 포함합니다.

  • Initializer

구문 설명
(id) initWithFrame:(CGRect)frame 경위도 좌표와 해당 주소로 초기화
  • Constants
    지도 상태에 대한 상수 값은 아래와 같습니다.
구문 설명
NMapViewStatusBeginAnimation 애니메이션이 시작됨
NMapViewStatusEndAnimation 애니메이션이 종료됨

지도 모드에 대한 상수 값은 아래와 같습니다.

구문 설명
NMapViewModeVector 일반 지도 보기 모드
NMapViewModeHybrid 위성 지도 보기 모드
NMapViewModeTraffic 실시간 교통 지도 보기 모드
NMapViewModeBicycle 자전거 지도 보기 모드
NMapViewModePanorama 파노라마 지도 보기 모드
  • Properties
구문 설명
@property (nonatomic, getter=isAutoRotateEnabled) BOOL autoRotateEnabled 지도 자동 회전 기능 활성화 여부를 설정하거나 현재 상태를 반환한다.
@property (nonatomic) CGFloat rotateAngle 지도를 전달된 각도로 회전하거나 회전된 각도를 반환한다. 지도 자동 회전 기능이 활성화된 상태에서만 유효하다.
@property (nonatomic, assign) id delegate 지도 상태 변경, 터치 이벤트 발생 및 오버레이 아이템 처리 시 호출되는 콜백 인터페이스를 설정한다.
@property (nonatomic, assign) id reverseGeocoderDelegate 좌표를 주소를 변환하는 API 호출 시 서버 응답에 대한 콜백 인터페이스를 설정한다.
@property (nonatomic, readonly) NMapOverlayManager *mapOverlayManager 오버레이 데이터 관리를 위한 객체를 반환한다.
@property (nonatomic, assign) BOOL isAnimating 맵뷰의 상태가 애니메이션 중인지 여부를 반환한다.
@property (nonatomic, assign) BOOL isPanning 맵뷰의 상태가 패닝 중인지 여부를 반환한다.
  • Methods
구문 설명
(BOOL) isValidLongitude:
(double)lon latitude:
(double)lat
전달된 좌표를 지도 라이브러리에서 처리할 수 있는지 여부를 반환한다. 내부적으로 국내 영토를 감싸는 폴리곤 영역에 포함되는지 여부를 체크한다.
(double)distanceFromLocation:
(NGeoPoint)fromLocation toLocation:
(NGeoPoint)toLocation
두 경위도 좌표 사이의 거리(미터)를 반환한다.
(void)setClientId:(NSString *)clientId; 애플리케이션 등록 시 발급받은 클라이언트 아이디값을 설정하기 위한 메서드이다.
(void) setApiKey:(NSString *)apiKey // deprecated 기존 API 키 방식 호출을 위한 메서드로서, 오픈 지도 라이브러리 사용을 위해 등록된 키를 설정한다. 정상적으로 등록된 키를 설정하지 않은 경우에는 onMapView:initHandler: 콜백으로 에러가 전달된다. (deprecated 메서드로서 2016 년 말까지만 이용가능)
(void) setEnlarged:(BOOL)isEnlarged mapHD:(BOOL)isMapHD 지도 타일의 확대 여부 및 고해상도 타일 여부를 선택한다. 아이폰 4 이상의 레티나 단말을 타겟으로 한다면, 두 값을 모두 YES로 설정할 것을 권장한다.
(void) setLogoImageOffsetX:(CGFloat)offsetX offsetY:(CGFloat)offsetY 네이버 로고 이미지의 위치를 조정한다. 기준은 화면 왼쪽 하단이며, 화면 왼쪽 하단 끝보다 오른쪽이면 offsetX 값이 양수이고 위쪽이면 offsetY 값이 양수이다.
(void) reload 지도 타일을 다시 로딩한다.
(void) invalidate 지도 화면을 다시 그린다.
(void) viewWillAppear 지도가 포함된 UIViewController의 viewWillAppear에서 호출한다.
(void) viewDidAppear 지도가 포함된 UIViewController의 viewDidAppear에서 호출한다.
(void) viewWillDisappear 지도가 포함된 UIViewController의 viewWillDisappear에서 호출한다.
(void) viewDidDisappear 지도가 포함된 UIViewController의 viewDidDisappear에서 호출한다.
(void) didReceiveMemoryWarning 지도가 포함된 UIViewController의 didReceiveMemoryWarning에서 호출한다.
  • Protocol – NMapViewDelegate
    지도 상태 변경 및 터치 이벤트 발생 시 호출되는 콜백 프로토콜을 정의합니다.
구문 설명
(void) onMapView:(NMapView )mapView initHandler:(NMapError )error 지도가 초기화된 후 호출된다. 정상적으로 초기화되면 error 객체에는 nil 이 전달되며, 초기화 실패 시 error 객체에 에러 원인이 전달된다.
(void) onMapView:(NMapView *)mapView willChangeMapLevel:(int)toLevel 지도 레벨 변경 시작 시 호출되며 변경된 지도 레벨이 파라미터로 전달된다.
(void) onMapView:(NMapView *)mapView didChangeMapLevel:(int)level 지도 레벨 변경 완료 후 호출되며 변경된 지도 레벨이 파라미터로 전달된다.
(void) onMapView:(NMapView *)mapView didChangeViewStatus:(NMapViewStatus)status 지도 애니메이션 시작 및 종료 변경 시 호출된다.
(void) onMapView:(NMapView *)mapView didChangeMapCenter:(NGeoPoint)location 지도 중심 변경 시 호출되며 변경된 중심 좌표는 파라미터로 전달된다.
(void) onMapView:(NMapView )mapView touchesBegan:(NSSet )touches withEvent:(UIEvent *)event 지도에서 터치 시작 이벤트 발생 시 호출된다.
(void) onMapView:(NMapView )mapView touchesMoved:(NSSet )touches withEvent:(UIEvent *)event 지도에서 터치 이동 이벤트 발생 시 호출된다.
(void) onMapView:(NMapView )mapView touchesEnded:(NSSet )touches withEvent:(UIEvent *)event 지도에서 터치 종료 이벤트 발생 시 호출된다.
(void) onMapViewTouchesCanceled:(NMapView *)mapView 지도에서 터치 취소 이벤트 발생 시 호출된다.
(BOOL) onMapView:(NMapView *)mapView dispatchTouchesBeganPoint:(CGPoint)touchPoint withFrame:(CGRect)frame 오버레이 아이템의 모드가 NMapPOIflagModeDispatch인 경우에, 터치 이벤트에 의해 해당 아이템이 선택되면 호출된다. frame에는 해당 아이템의 영역이 전달된다. 해당 아이템에 대한 터치 이벤트를 직접 처리하려면 YES를 반환한다.
(BOOL) onMapView:(NMapView *)mapView dispatchTouchesBeganPoint:(CGPoint)touchPoint 오버레이 아이템의 모드가 NMapPOIflagModeDispatch인 아이템이 선택된 경우에, 지도에서 발생한 터치 시작 이벤트를 전달한다. delegate에서 터치 이벤트를 직접 처리하려면 YES를 반환한다.
(void) onMapView:(NMapView *)mapView dispatchTouchesMovedPoint:(CGPoint)touchPoint 지도에서 터치 이동 이벤트 발생 시 호출된다.
(void) onMapView:(NMapView *)mapView dispatchTouchesEndedPoint:(CGPoint)touchPoint 지도에서 터치 종료 이벤트 발생 시 호출된다.
(void) onMapViewDispatchTouchesCancelled:(NMapView *)mapView 지도에서 터치 취소 이벤트 발생 시 호출된다.
(void) onMapView:(NMapView )mapView forwordTouchesBegan:(NSSet )touches withEvent:(UIEvent *)event 지도에서 터치 시작 이벤트 발생 시 호출된다.(맵뷰 내부적으로 터치 이벤트가 처리된 경우)
(void) onMapView:(NMapView )mapView forwordTouchesEnded:(NSSet )touches withEvent:(UIEvent *)event 지도에서 터치 취소 이벤트 발생 시 호출된다.(맵뷰 내부적으로 터치 이벤트가 처리된 경우)
(void) onMapView:(NMapView )mapView handleLongPressGesture:(UIGestureRecognizer)recogniser 지도에서 롱탭 이벤트 발생 시 호출된다.
(void) onMapView:(NMapView )mapView handleSingleTapGesture:(UIGestureRecognizer)recogniser 지도에서 싱글탭 이벤트 발생 시 호출된다.
(void) onMapView:(NMapView )mapView didHandleSingleTapGesture:(UIGestureRecognizer)recogniser 지도에서 싱글탭 이벤트 발생 시 호출된다.(맵뷰 내부적으로 터치 이벤트가 처리된 경우)

NMapController

  • Description
    NMapView 클래스의 카테고리 클래스이며 지도 뷰어를 컨트롤하는 역할을 수행합니다. 지도 중심 위치 및 지도 레벨 지정, 확대, 축소, 패닝 기능 등 다양한 기능을 수행합니다.

  • Properties

구문 설명
@property (nonatomic) NMapViewMode mapViewMode 지도 보기 모드를 설정/반환한다.
NMapViewModeVector : 일반 지도
NMapViewModeHybrid : 위성 지도
@property (nonatomic) BOOL mapViewTrafficMode 실시간 교통 지도 보기 모드를 설정/반환한다.
@property (nonatomic) BOOL mapViewBicycleMode 자전거 지도 보기 모드를 설정/반환한다.
@property (nonatomic) BOOL mapViewPanoramaMode 파노라마 지도 보기 모드를 설정/반환한다.
@property (nonatomic, readonly) NGeoPoint mapCenter 지도 중심 좌표를 경위도 형식으로 반환한다. 지도 중심은 boundsVisible에 의해서 설정된 영역의 중심에 위치한다.
@property (nonatomic) CGRect boundsVisible 화면에 보이는 지도 영역을 설정/반환한다. 지도 전체 영역과 화면에 보이는 지도 영역이 다를 경우에 설정한다. 설정하지 않으면 지도 영역과 동일하다.
  • Methods
구문 설명
(void) setMapCenter:(NGeoPoint)location atLevel:(int)level 지도 중심 좌표 및 축척 레벨을 설정한다. 축척 레벨을 지정하지 않으면 중심 좌표만 변경된다. 유효 축척 레벨 범위는 1~14이다. 지도 중심은 boundsVisible에 의해서 설정된 영역의 중심에 위치한다.
(NGeoPoint) mapBoundsCenter 지도 중심 좌표를 경위도 형식으로 반환한다.
(void) setZoomLevelMin:(int)minLevel max:(int)maxLevel 최대, 최소 지도 축척 레벨을 설정한다. 유효 축척 레벨 범위는 1~14이다.
(int) minZoomLevel 최소 지도 축척 레벨을 반환한다.
(int) maxZoomLevel 최대 지도 축척 레벨을 반환한다.
(void) setZoomEnabled:(BOOL)enabled; 지도 확대/축소 가능 여부를 설정한다.
(void) setPanEnabled:(BOOL)enabled 지도 패닝 가능 여부를 설정한다.
(int) zoomLevel 현재 지도 축척 레벨을 반환한다.
(BOOL) setZoomLevel:(int)level 지도 축척 레벨을 변경하며 성공 여부를 반환한다.
(void) zoomIn 지도 축척 레벨을 한 단계 확대한다.
(void) zoomOut 지도 축척 레벨을 한 단계 축소한다.
(void) moveByDx:(float)dX dY:(float)dY 지도 중심을 전달된 변위 값만큼 이동한다.
(void) zoomToBounds:(NGeoRect)bounds atLevel:(int)level (int)level 전달된 영역이 화면에 표시되도록 지도 중심점 및 축척 레벨을 자동으로 변경한다. 축척 레벨을 지정하면 지정된 축척 레벨에서 지도 중심 좌표만 변경된다. bound는 경위도 좌표 값으로 구성된 영역이다.

NMapProjection

  • Description NMapView 클래스의 카테고리 클래스이며 화면 좌표를 지도 좌표로 변환하는 기능을 수행합니다. 오버레이 레이어를 직접 구현할 경우에 사용해야 합니다.

  • Methods

구문 설명
(NGeoPoint) fromPoint:(CGPoint)pt 맵뷰의 화면 좌표에 해당하는 지도 좌표를 반환한다.
(int) metersToPoints:(float)meters 지도 중심에서 실제 거리(meters)를 화면상의 거리(points)로 변환한다.
(int) metersToPoints:(float)meters atLocation:(NGeoPoint)location 전달된 좌표를 중심으로 실제 거리(meters)를 화면상의 거리(points)로 변환한다.
(CGPoint) toPointFromLocation:(NGeoPoint)location 전달된 경위도 좌표에 해당하는 맵뷰의 화면 좌표를 반환한다.
(NGPoint) toMapPointFromLocation: (NGeoPoint)location 지전달된 경위도 좌표에 해당하는 맵뷰의 지도 좌표를 반환한다. 본 좌표는 오버레이 레이어에서 지도 위에 경로 등을 직접 드로잉 시에 사용한다.
(BOOL) isVisibleLocation: (NGeoPoint)location 전달된 지도 좌표가 현재 화면에 표시되는지 여부를 반환한다.
(NGeoRect) screenBounds 맵뷰의 화면 영역에 해당하는 지도 좌표 영역을 반환한다.
(NGeoRect) screenBoundsBy: (double)areaRatio 맵뷰의 화면 영역에 해당하는 지도 좌표 영역을 반환한다. 전달된 areaRatio는 화면 영역에 areaRatio를 곱한 영역에 대해서 지도 좌표 영역을 반환한다.

NMapViewRotation

  • Description
    NMapView 클래스의 카테고리 클래스이며 지도 회전 기능을 수행합니다.

  • Properties

구문 설명
@property (nonatomic, getter=isAutoRotateEnabled) BOOL autoRotateEnabled 지도 자동 회전 기능 활성화 여부를 설정하거나 현재 상태를 반환한다.
@property (nonatomic) CGFloat rotateAngle 지도를 전달된 각도로 회전하거나 회전된 각도를 반환한다. 지도 자동 회전 기능이 활성화된 상태에서만 유효하다.

NMapReverseGeocoder

  • Description
    NMapView 클래스의 카테고리 클래스이며 좌표를 주소로 변환하는 메서드를 수행합니다.

  • Methods

구문 설명
(void) findPlacemarkAtLocation: (NGeoPoint)location 좌표를 주소를 변환하는 서버 API를 호출한다. 서버 API는 비동기로 수행하면 결과는 NMapReverseGeocoderDelegate로 전달된다.
  • Protocol – NMapReverseGeocoderDelegate
    좌표를 주소를 변환하는 API에 대한 응답 프로토콜을 정의합니다.
구문 설명
(void) location:(NGeoPoint)location didFindPlacemark:(NMapPlacemark *)placemark 좌표를 주소를 변환하는 API 호출 시 서버 응답에 대한 콜백 인터페이스이다. placemark 객체에는 요청한 좌표에 대한 주소 데이터를 포함한다.
(void) location:(NGeoPoint)location didFailWithError:(NMapError *)error 좌표를 주소를 변환하는 API 실패 시 호출된다. error 객체에 에러에 대한 정보가 전달된다.

Overlay 클래스

NMapOverlay

  • Description
    지도 위에 오버레이 객체를 표시하기 위한 기반 클래스입니다. 이 클래스를 상속받은 클래스에서는 아래의 메서드를 직접 구현해야 합니다.

  • Properties

구문 설명
@property (nonatomic, assign) BOOL hidden 오버레이 객체의 화면 표시 여부를 설정/반환한다.
@property (nonatomic, assign) NMapOverlayZPosition zPosition 오버레이 객체의 화면에서 zPosition을 설정/반환한다. 값이 클수록 상위에 표시된다.
  • Methods
구문 설명
(void) drawToLayer:(CALayer *)theLayer frame:(CGRect)rect 오버레이 객체를 화면에 표시한다. 경로와 같이 지도 위에 직접 표시되는 오버레이 객체인 경우에 구현한다.
(void) clearOverlay 오버레이 객체가 화면에서 제거되는 경우에 호출된다. 경로와 같이 지도 위에 직접 표시되는 오버레이 객체인 경우에는 맵뷰의 invalidate 메서드를 호출해야 한다.
(void) stopTimers 오버레이 객체에서 사용하는 타이머를 종료한다. 맵뷰가 비활성화되는 경우에 호출된다.
(void) layoutSublayers 오버레이 객체에서 표시하는 레이어들의 위치를 조정한다. 맵뷰의 레이아웃이 변경되면 호출된다.
(void) moveByDx:(float)dX dY:(float)dY 오버레이 객체에서 표시하는 레이어들의 위치를 전달된 변위만큼 이동한다. 지도 패닝 시 호출된다.
(void) initZoomByFactor: (float)zoomFactor near:(CGPoint)pivot 확대/축소 애니메이션 시작 시에 호출된다. 애니메이션 시작 전에 필요한 작업을 수행한다. 애니메이션 도중에 화면에 표시되는 레이어들의 위치 변경이 필요한 경우에 구현한다.
(void) zoomByFactor: (float)zoomFactor near:(CGPoint)pivot 확대/축소 애니메이션 진행 중에 호출된다. pivot 위치를 중심으로 zoomFactor 배율로 확대 또는 축소된다. 애니메이션 도중에 화면에 표시되는 레이어들의 위치 변경이 필요한 경우에 구현한다.
(BOOL) hasPathData 오버레이 객체에서 지도 위에 직접 경로를 표시하는지 여부를 반환한다.
(int) layerZPosition:(int)zPosition 오버레이 객체에서 표시되는 레이어의 zPosition을 인자로 전달받아 맵뷰상의 오버레이 레이어의 zPosition으로 반환한다.

NMapPOIitem

  • Description
    지도 위에 표시되는 오버레이 아이템 클래스이며 NMapPOIdataOverlay 클래스에서 표시하는 기본 객체로 사용됩니다. 지도에 표시되는 마커 이미지는 NMapPOIdataOverlayDelegate 프로토콜을 통해서 전달합니다.

  • Initializer
    NMapPOIdataOverlay 클래스의 메서드를 사용하여 아이템 추가 시 내부적으로 생성됩니다.

  • Constants
    현재 위치 오버레이 객체를 표시하기 위하여 미리 정의된 마커의 종류는 아래와 같습니다. 지도 라이브러리에서 현재 위치 표시 기능을 사용하는 경우에는 애플리케이션에서 해당 마커의 이미지를 제공해야 합니다.

구문 설명
NMapPOIflagTypeLocation 현재 위치를 표시하는 마커
NMapPOIflagTypeLocationOff 현재 위치를 표시하는 마커
NMapPOIflagTypeCompass 현재 위치 마커 위에 나침반 방향을 표시하는 마커

오버레이 아이템의 속성은 아래와 같습니다.

구문 설명
NMapPOIflagModeTouch 터치 및 드래그 이벤트로 위치 변경이 가능한 아이템
NMapPOIflagModeDrag 드래그 이벤트로 위치 변경이 가능한 아이템
NMapPOIflagModeFixed 지도 상에 위치가 고정된 아이템
NMapPOIflagModeDispatch 아이템 선택 시 터치 이벤트를 직접 처리하기 위한 아이템
  • Properties
구문 설명
@property (nonatomic, readonly) CGRect frame 마커가 화면에 표시되는 영역을 반환한다.
@property (nonatomic, assign, getter=isHidden) BOOL hidden 마커의 표시 여부를 설정/반환한다.
@property (nonatomic, retain) NSString *title 마커의 타이틀을 설정/반환한다. 타이틀을 설정하지 않으면 마커 선택 시 말풍선이 표시되지 않는다.
@property (nonatomic, assign) NGeoPoint location 마커의 좌표를 설정/반환한다.
@property (nonatomic, assign) int poiFlagType 마커의 종류를 설정/반환한다.
@property (nonatomic, retain) id object 사용자 객체를 설정/반환한다.
@property (nonatomic, assign) BOOL hasRightCalloutAccessory 마커 선택 시 표시되는 말풍선에서 오른쪽 아이콘 표시 여부를 설정/반환한다.
  • Methods
구문 설명
(void) setPOIflagMode: (NMapPOIflagMode)mode 마커의 속성을 변경한다.

NMapPOIdataOverlay

  • Description
    여러 개의 오버레이 아이템을 포함할 수 있는 오버레이 클래스이며 NMapOverlay 클래스를 상속합니다. 그룹 오버레이 아이템을 효과적으로 처리할 수 있는 기능을 제공합니다.

  • Initializer
    NMapOverlayManager 클래스의 createPOIdataOverlay 메서드 호출 시 내부적으로 생성됩니다.

  • Properties

구문 설명
@property (nonatomic, readonly) int idxFocusedPOIitem 선택된 아이템의 인덱스를 반환한다.
@property (nonatomic, readonly) BOOL focusedBySelectItem 터치 이벤트에 의해서 선택된 아이템인 경우에는 false를 반환하고 그 이외에는 true를 반환한다.
  • Methods
구문 설명
(void) initPOIdata:(int)countOfPOIdata POI 아이템 추가를 시작한다.
(NMapPOIitem ) addPOIitemAtLocation:(NGeoPoint)location title:(NSString )title type:(NMapPOIflagType)poiFlagType iconIndex:(int)iconIndex withObject:(id)object POI 아이템을 추가한다. 아이템이 표시될 좌표와 마커 종류는 필수 인자이며, title을 nil로 전달하면 마커 선택 시 말풍선이 표시되지 않는다. object는 마커 및 말풍선 선택 시 호출되는 콜백 인터페이스에서 사용하기 위해 전달한다. 반환된 객체로 추가적인 정보를 설정할 수 있다.
(void) endPOIdata POI 아이템 추가를 종료한다.
(int) count; POI 데이터의 아이템 개수를 반환한다.
(NSArray *) poiData POI 데이터를 반환한다. 반환된 배열은 NMapPOIitem 객체로 구성된다.
(void) selectPOIitemAtIndex:(int)index moveToCenter:(BOOL)moveToCenter POI 데이터에서 index에 해당하는 아이템을 선택한다. moveToCenter로 선택된 아이템을 화면 중앙에 표시되도록 지도를 이동할지 여부를 설정한다.
(void) selectPOIitemWithType: (NMapPOIflagType)poiFlagType moveToCenter:(BOOL)moveToCenter POI 데이터에서 마커 종류와 일치하는 아이템을 선택한다. moveToCenter로 선택된 아이템을 화면 중앙에 표시되도록 지도를 이동할지 여부를 설정한다.
(void) selectPOIitemWithObject:(id)object moveToCenter:(BOOL)moveToCenter POI 데이터에서 object를 소유한 아이템을 선택한다. moveToCenter로 선택된 아이템을 화면 중앙에 표시되도록 지도를 이동할지 여부를 설정한다.
(void) showAllPOIdataAtLevel:(int)zoomLevel POI 데이터가 모두 화면에 표시되도록 지도 축척 레벨 및 지도 중심을 변경한다. zoomLevel 이 0 이 아니면 지정한 지도 축척 레벨에서 지도 중심만 변경한다.
(NMapPOIitem ) findPOIitemWithObject: (id)object foundIndex:(int )foundIndex object를 소유한 POI 아이템을 반환한다.
(CGRect) frameOfSelectedPOIitem 선택된 아이템이 화면에서 표시되는 영역을 반환한다.
(void) deselctFocusedPOIitem 아이템을 선택 해제한다.
(void) changeTitleOfPOIitemWithType: (NMapPOIflagType)poiFlagType title:(NSString *)title *)title 마커 종류가 poiFlagType인 아이템의 타이틀을 변경한다.
(void) updateImageAtIndex:(int)index 아이템의 이미지를 업데이트하기 위해 호출한다.
(BOOL) containsLocation:(NGeoPoint)location 전체 POI 데이터를 포함하는 영역에 전달된 좌표가 포함되는지 여부를 반환한다.
(int) indexForAdjacentLocation 전달된 좌표를 중심으로 반경 이내에 인접한 아이템
(NGeoPoint)lonLat withinRadius:(float)radius 인덱스를 반환한다.
  • Protocol – NMapPOIdataOverlayDelegate
    오버레이 아이템 처리 시 호출되는 콜백 프로토콜을 정의합니다.
구문 설명
(UIImage ) onMapOverlay:(NMapPOIdataOverlay )poiDataOverlay imageForOverlayItem: (NMapPOIitem *)poiItem selected:(BOOL)selected 마커에 해당하는 이미지를 반환한다. 마커 선택 시 표시되는 이미지는 selected 값이 YES인 경우 반환한다.
(CGPoint) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay anchorPointWithType:(NMapPOIflagType)poiFlagType 마커의 기준 위치를 설정한다. 범위는 0.0 1.0이며 마커의 왼쪽 하단이 원점이다.
(UIView) onMapOverlay:(NMapPOIdataOverlay )poiDataOverlay viewForCalloutOverlayItem:(NMapPOIitem )poiItem calloutPosition:(CGPoint )calloutPosition 마커 선택 시 표시되는 말풍선의 내용을 뷰로 반환한다.
poiItem : 선택된 오버레이 아이템
calloutPosition : 말풍선 표시 위치
해당 delegate를 구현하지 않거나 nil을 반환하면 이미지를 반환하는 onMapOverlay:imageForCalloutOverlayItem:...이 호출된다.
(UIImage) onMapOverlay: (NMapPOIdataOverlay )poiDataOverlay imageForCalloutOverlayItem: (NMapPOIitem )poiItem constraintSize: (CGSize)constraintSize selected:(BOOL)selected imageForCalloutRightAccessory: (UIImage )imageForCalloutRightAccessory calloutPosition: (CGPoint )calloutPosition calloutHitRect:(CGRect )calloutHitRect 마커 선택 시 표시되는 말풍선의 내용을 이미지로 반환한다.
constraintSize : 말풍선 크기 제한
selected : 말풍선 영역 선택 여부
imageForCalloutRightAccessory : 말풍선 오른쪽 아이콘 이미지
calloutPosition : 말풍선 표시 위치
* calloutHitRect : 말풍선 터치 영역
(CGPoint) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay calloutOffsetWithType: (NMapPOIflagType)poiFlagType 마커 선택 시 표시되는 말풍선의 상대 위치를 설정한다.
(BOOL) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay didChangeSelectedPOIitemAtIndex: (int)index withObject:(id)object 선택된 아이템이 변경되면 호출된다.
(BOOL) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay didDeselectPOIitemAtIndex: (int)index withObject:(id)object 이전에 선택된 아이템이 선택 해제되면 호출된다.
(BOOL) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay didSelectCalloutOfPOIitemAtIndex: (int)index withObject:(id)object 마커의 말풍선이 선택되면 호출된다.
(BOOL) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay hasCalloutRightAccessoryAtIndex: (int)index withObject:(id)object 마커의 말풍선이 오른쪽 아이콘 이미지를 표시하는지 여부를 반환한다.
(UIImage ) onMapOverlay:(NMapPOIdataOverlay)poiDataOverlay imageForCalloutRightAccessoryAtIndex:(int)index selected:(BOOL)selected withObject:(id)object 말풍선에 표시할 오른쪽 아이콘 이미지를 반환한다.
(void) onMapOverlay:(NMapPOIdataOverlay *)poiDataOverlay didChangePOIitemLocationTo:(NGeoPoint)location withType:(NMapPOIflagType)poiFlagType 플로팅 아이템의 위치가 변경되면 호출된다.

NMapPathData

  • Description
    지도 위에 표시되는 경로 선을 관리하는 클래스입니다.

  • Constants
    경로 선 스타일에 대한 상수 필드의 설명은 아래와 같습니다.

구문 설명
NMapPathLineTypeSolid 실선
NMapPathLineTypeDash 점선
  • Initializer
구문 설명
(id)initWithCapacity:(int)capacity 경로 데이터의 개수를 인자로 전달한다.
  • Methods
구문 설명
(void) initPathData:(int)count 경로 데이터 추가를 시작한다.
(void) addPathPointLongitude:(double)longitude latitude:(double)latitude lineType:(NMapPathLineType)lineType 경로 데이터의 보간점 좌표를 추가한다. lineType은 NMapPathLineType에서 정의된 값으로 전달한다. lineType을 0으로 전달하면 이전 보간점의 값을 그대로 사용한다.
(void) endPathData 경로 데이터 추가를 종료한다.

NMapPathDataOverlay

  • Description
    경로 데이터를 표시하기 위한 오버레이 클래스이며 NMapOverlay 클래스를 상속합니다. 단순한 경로 데이터 이외에도 폴리곤 및 원 데이터를 표시할 수 있습니다.

  • Initializer
    NMapOverlayManager 클래스의 createPathDataOverlay 메서드 호출 시 내부적으로 생성됩니다.

  • Methods

구문 설명
(void) setLineColorWithRed:(float)red green:(float)green blue:(float)blue alpha:(float)alpha 디폴트 경로 선의 색상 값을 설정한다.
(void) setLineWidth:(float)width 디폴트 경로 선의 두께를 설정한다.
(void) showAllPathDataAtLevel:(int)zoomLevel 경로 데이터가 모두 화면에 표시되도록 지도 축척 레벨 및 지도 중심을 변경한다.
zoomLevel 이 0 이 아니면 지정한 지도 축척 레벨에서 지도 중심만 변경한다.
(BOOL) containsLocation:(NGeoPoint)location 전체 경로를 포함하는 영역이 전달된 좌표를 포함하는지 여부를 반환한다.

NMapOverlayManager

  • Description
    지도 위에 표시되는 모든 오버레이 객체들을 관리합니다.

  • Initializer
    NMapView 클래스에서 내부적으로 생성됩니다.

  • Properties

구문 설명
@property (nonatomic, readonly) NMapMyLocationOverlay *myLocationOverlay 현재 위치 오버레이 객체를 반환한다.
@property (nonatomic, assign) CALayer *overlayLayer 지도 위에 표시되는 오버레이 아이템들의 부모 객체를 나타낸다. NMapOverlay <#IOC_Overlay> 클래스를 상속받은 클래스에서 오버레이 아이템을 직접 처리하는 경우 사용한다.
  • Methods
구문 설명
(void) addOverlay:(NMapOverlay *)overlay 오버레이 객체를 추가한다.
(void) clearOverlays 재 위치 오버레이 객체를 제외한 모든 오버레이 객체를 제거한다.
(void) setMyLocation:(NGeoPoint)location locationAccuracy:(float)locationAccuracy 전달된 좌표 및 반경으로 현재 위치 오버레이 객체를 생성하여 추가한다.
(NMapPathDataOverlay ) createPathDataOverlay:(NMapPathData )pathData 경로 데이터를 인자로 전달하여 NMapPathDataOverlay 객체를 생성하여 추가한다. 반환되는 객체는 호출하는 곳에서 release 해야 한다.
(NMapPOIdataOverlay *) createPOIdataOverlay NMapPOIdataOverlay 객체를 생성하여 추가한다. 반환되는 객체는 호출하는 곳에서 release 해야 한다.
(NMapPOIdataOverlay *) findFocusedPOIdataOverlay 선택된 NMapPOIdataOverlay 객체를 반환한다.
(BOOL) hasOverlay:(NMapOverlay *)overlay 전달된 overlay 객체의 존재 여부를 반환한다.
(void) releaseOverlay:(NMapOverlay *)overlay 전달된 overlay 객체를 제거하고 release 한다.
(void) clearMyLocationOverlay 현재 위치 오버레이 객체를 제거한다.
(BOOL) hasMyLocationOverlay 현재 위치 overlay 객체의 존재 여부를 반환한다.
(BOOL) canRefreshOverlayData:(BOOL)checkCallout 오버레이 객체 업데이트 가능 여부를 반환한다. 지도 애니메이션 중에는 false를 반환한다. checkCallout 이 true 이면 말풍선이 표시된 상태에서도 false를 반환한다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...