프로그램/Android

네이버맵 API 사용하기(1.네이버앱 등록 및 기본 맵 띄우기)

잡식성초보 2017. 8. 29. 10:39

이번에는 네이버맵에 대한 사용법을 알아볼 예정입니다


여기저기 맵에 대한 사용 의뢰 또는 사용할 일들이 많기 때문에 미리 연습해보면 좋을거 같습니다


제가 네이버맵을 사용하는 이유는 구글맵은 유료가 되었고 다음카카오 맵을 이용할려 하는데 최근에 


바뀌면서 에러가 난것인지 다음 개발자 센터 등록된 키를 사용하는 앱은 정상작동하고 카카오에


록하면 오류가 나서 안되는건지 에러로 인하 만들어 볼수 없었던 관계로 네이버맵을 적용하기로


였습니다.(제가 실력이 부족해서 못한것일수 음을 알려드립니다.)





1. 첫번째 방법입니다. “네이버 개발자센터 검색하여 네이버 개발자센터 홈페이지로 들어갑니다. 네이버 계정을 이용하여 로그인을 한후 위에 보이는 상단메뉴에서 Application -> 어플리케이션 등록 클릭합니다.  https://developers.naver.com/main/






2. 애플리케이션 이름을 등록하는데 여기는 만든앱명을 적지 않아도 되며 사용자가 원하는 이름을 적어도 무방합니다. 다음은 사용 API지도(모바일)” 선택하여 주시면 밑에 안드로이드 패키지명을 적는 부분이 나옵니다. 여기까지 등록해 주시고 나면 등록하기 버튼을 눌러줍니다.





3. 정상적으로 등록을 해주셨다면 다음에 바로 애플리케이션 정보가 나오면서 ClientID 나올것입니다. 아이디를 이용하여야 하므로 앱을 만들고 난뒤 string.xml 넣어두시기 바랍니다.





4. 다음은 앱에서 작업을 해주셔야할 내용입니다. 첫번째 일단 실습 해볼때 필요한 권한을 적용시켜주시면 되겠습니다.



<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />



5. 네이버맵을 이용하기 위해서 gradle 값을 적용합니다.

(compile 'com.naver.maps.open:naver-map-api:2.1.2@aar')


dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})

compile 'com.android.support:appcompat-v7:26.0.0+'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.naver.maps.open:naver-map-api:2.1.2@aar'
testCompile 'junit:junit:4.12'
}




6. 준비는 되었으면 이제 맵을 띄어 봐야겠지요. 기본적으로 맵을 띄우는 방법은 아래와 같습니다. 네이버 맵은 NMapActivity 한군데서 밖에 사용하지 못하는 관계로 다른 많은 페이지들을 사용한다면 네이버맵을 상속받은 Actvity에서 Fragment 이용하여야 할거같습니다. 



public class MainActivity extends NMapActivity {

    private ViewGroup mapLayout;
    private NMapView mMapView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        init();
    }

    private void init(){


        mapLayout = findViewById(R.id.mapLayout);

        mMapView = new NMapView(this);
        mMapView.setClientId(getResources().getString(R.string.NAVER_API_KEY)); // 클라이언트 아이디 값 설정
        mMapView.setClickable(true);
        mMapView.setEnabled(true);
        mMapView.setFocusable(true);
        mMapView.setFocusableInTouchMode(true);
        mMapView.setScalingFactor(1.5f);
        mMapView.requestFocus();

        mapLayout.addView(mMapView);
    }
}





반응형