始める

NAVER Map SDKを使用するためにはNAVERクラウドプラットフォームでクライアントIDの発行を受け、発行されたIDをSDKに指定しなければなりません。

クライアントIDの発行

NAVER MapのモバイルSDK APIを使用するためには、次のようにアプリケーションを登録し、クライアントIDの発行を受けなければなりません。

  1. コンソールのAI·Application Service > AI·NAVER API > Applicationでアプリケーションを登録します。(詳しい方法は"Application使用ガイド"をご参考)
  2. AI·Application Service > AI·NAVER API > Applicationで登録したアプリケーションを選択し、Client IDの値を確認します。
  3. AI·Application Service > AI·NAVER API > Application変更画面でMapsが選択されているかを確認します。選択されていない場合、認証失敗エラー(429)が発生するので、ご注意ください。

詳しい方法はApplication使用ガイドをご参考ください。

依存性の追加

NAVER Map SDKはcocoapodsを使ってデプロイされます。

また大容量のファイルを受け取るためにgit-lfsのインストールが必要です。

アプリプロジェクトのPodfileにNAVER Map SDKに対する依存性を宣言します。

次はNAVER Map SDKに対する依存性を宣言した例題です。

target 'NaverMapDemo' do

    pod 'NMapsMap'

end

クライアントIDの指定

発行されたクライアントIDをSDKに指定すれば、地図APIを使用できます。クライアントIDは2つの方式で指定できます。

info.plistに指定

info.plistCustom KeysでクライアントIDを指定できます。info.plistに新しいエレメントを追加し、keyNMFClientIdstringでAPIキーを指定します。

次はinfo.plistにクライアントIDを指定する例題です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>NMFClientId</key>
        <string>YOUR_CLIENT_ID_HERE</string>
    <dict>
<plist>

APIを呼び出して指定

info.plistを修正せずにAPIを呼び出してクライアントIDを指定することもできます。AppDelegate-application:didFinishLaunchingWithOptions:内でNMFAuthManager.clientIdに直接設定できます。NMFAuthManagerはシングルトンクラスであるため、+sharedを呼び出してインスタンスを取得しなければなりません。

次はAPIを呼び出してクライアントIDを指定する例題です。

Swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    NMFAuthManager.shared().clientId = "YOUR_CLIENT_ID_HERE"

    return true

}

Objective-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    [NMFAuthManager shared].clientId = @"YOUR_CLIENT_ID_HERE";

    return YES;

}

地図の表示

クライアントIDを指定してNMFMapViewをビューコントローラに追加すると、地図が画面に表示されます

次はコードで直接NMFMapViewを追加し、地図を画面に表示する例題です。

Swift

override func viewDidLoad() {
    super.viewDidLoad()

    let mapView = NMFMapView(frame: view.frame)
    view.addSubview(mapView)
}

Objective-C

- (void)viewDidLoad {
    [super viewDidLoad];

    NMFMapView *mapView = [[NMFMapView alloc] initWithFrame:self.view.frame];
    [self.view addSubview:mapView];
}

XIBあるいはstoryboardなどのInterface Builderを使用する場合はUIViewを追加し、Custom ClassとしてNMFMapViewを指定します。

Interface Builderで地図を追加する

認証失敗処理

クライアントIDの指定が間違っていたり、使用量がクォータを超えると地図が画面に表示されず、consoleウィンドウとUIAlertControllerに認証エラーメッセージが出力されます。NMFAuthManager.delegate属性を指定して-authorized:error:デリゲートメソッドを具現すれば、認証失敗イベントを受けることができます。デリゲートメソッドを具現すると、認証処理のたびにデリゲートメソッドが呼び出され、認証結果とエラーコードがパラメータとして転送されます。また、認証に失敗してもUIAlertControllerは表示されません。各パラメータの意味は次の通りです。

  • autohrized: 認証に成功したかどうかの結果です。認証に成功した場合はNMFAuthStateAuthorizedが、失敗した場合はNMFAuthStateUnauthorizedが転送されます。
  • error: 認証失敗の原因です。認証に成功した場合はnilです。code属性でエラーコードを確認できます。主に発生するエラーコードは次の通りです。
code 説明
401 - 間違ったクライアントIDを指定する
- コンソールでBundle Identifierを間違って登録する
429 - コンソールでMapsサービスを選択していない
- 使用限度を超える
800 クライアントIDを指定していない

この他の共通エラーコードは"エラーコードリスト"をご参考ください。

に対する検索結果は~件です。 ""

    に対する検索結果がありません。 ""

    処理中...