始める

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)が発生するので、ご注意ください。

依存性の追加

NAVER Map SDKはBintrayを使ってデプロイされます。ルートプロジェクトのbuild.gradleにストレージ設定を追加します。

次はストレージ設定を追加した例題です。

allprojects {
    repositories {
        google()
        jcenter()

        // NAVER Mapストレージ
        maven {
            url 'https://navercorp.bintray.com/maps'
        }
    }
}

そして、アプリモジュールのbuild.gradleにNAVER Map SDKに対する依存性を宣言します。

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

dependencies {
    // NAVER Map SDK
    implementation 'com.naver.maps:map-sdk:3.6.0'
}

クライアントIDの指定

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

AndroidManifest.xmlに指定

AndroidManifest.xml<meta-data>でクライアントIDを指定できます。<application>の下に<meta-data>要素を追加し、namecom.naver.maps.map.CLIENT_IDを、valueで発行されたクライアントIDを指定します。

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

<manifest>
    <application>
        <meta-data
            android:name="com.naver.maps.map.CLIENT_ID"
            android:value="YOUR_CLIENT_ID_HERE" />
    </application>
</manifest>

APIを呼び出して指定

AndroidManifest.xmlを修正せずにAPIを呼び出してクライアントIDを指定することもできます。ApplicationonCreate())内でNaverMapSdk.setClient()を呼び出してパラメータとしてNaverMapSdk.NaverCloudPlatformClientを転送します。NaverMapSdk.NaverCloudPlatformClientのコンストラクタパラメータとしてクライアントIDを指定します。NaverMapSdkはシングルトンクラスであるため、getInstance()を呼び出してインスタンスを取得しなければなりません。

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

public class YourApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        NaverMapSdk.getInstance(this).setClient(
           new NaverMapSdk.NaverCloudPlatformClient("YOUR_CLIENT_ID_HERE"));
    }
}

地図の表示

クライアントIDを指定してMapFragmentをアプリのレイアウトに追加すると、地図が画面に表示されます。

次は<fragment>要素でXMLレイアウトにMapFragmentを追加し、地図を画面に表示する例題です。

<fragment android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/map"
    android:name="com.naver.maps.map.MapFragment" />

認証失敗処理

クライアントIDの指定が間違っていたり、使用量がクォータを超えると地図が画面に表示されず、Logcatとトーストで認証エラーメッセージが出力されます。NaverMapSdk.onAuthFailedListener属性にOnAuthFailedListenerを登録すると、認証失敗イベントを受けることができます。リスナーを登録すると、認証失敗の際にonAuthFailed()コールバックメソッドが呼び出され、トーストは表示されません。

認証失敗イベントは明らかに認証に失敗したと確認された場合のみ発生します。従って、インターネット接続が不可能な場合はイベントが発生しません。キャッシュされたデータで地図をローディングした後、インターネット接続を再開すると再び認証を試み、その時認証に失敗するとイベントが発生します。

onAuthFailed()には認証失敗の原因を表すexceptionパラメータが転送されます。exceptionのタイプとerrorCode属性で原因を把握することができます。主に発生するエラーコードは次の通りです。

errorCode 例外タイプ 説明
401 UnauthorizedClientException - 間違ったクライアントIDを指定する
- コンソールでアプリのパッケージ名を間違って登録する
429 QuotaExceededException - コンソールでMapsサービスを選択していない
- 使用限度を超える
800 ClientUnspecifiedException クライアントIDを指定していない

その他の原因で認証に失敗すると、AuthFailedExceptionが発生します。共通エラーコードは"エラーコードリスト"をご参考ください。

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

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

    処理中...