코딩스토리

[Android/안드로이드] Kakao 지도 API 연동/카카오 지도 API연동 본문

Android/유용한 기술

[Android/안드로이드] Kakao 지도 API 연동/카카오 지도 API연동

라크라꾸 2020. 9. 15. 00:12

카카오 지도 API를 연동하기 위해서 SDK를 다운로드 받고, 앱 키를 발급받아야합니다.

 

APP KEY 발급

developers.kakao.com/

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

먼저 App key를 발급받기 위해서 kakao developer에 들어가서 로그인을 해줍니다.

로그인 후 내 애플리케이션 에서 애플리케이션 추가하기를 누르게 되면 앱을 추가할 수 있습니다.

 

앱을 생성했으면 이제 안드로이드 플랫폼을 설정해줘야 합니다.

 

 

왼쪽 플랫폼 탭에서 Android 플랫폼 등록을 해주게 되면 

 

다음과 같은 창이 뜹니다.

패키지명을 입력해주고, 마켓 URL은 없으면 없음을 선택해주시면 됩니다.

키 해시의 값은 지난번에 포스팅한 

2019/12/16 - [Android/유용한 기술] - [Android/안드로이드] 해시키(Hash key) 가져오는 방법

 

[Android/안드로이드] 해시키(Hash key) 가져오는 방법

해시키는 앱마다 가지고 있는 고유키입니다. 페이스북 SDK, 카카오톡 SDK 등과 연동하기 위해서는 해시키(Hash key)를 가지고 각각의 앱을 구분하여 설정된 기능을 제공하기 때문에 반드시 해시키(Ha

lakue.tistory.com

를 참조해주세요.

 

이제 플랫폼 등록이 완료되었습니다.

 

요약정보에 가시면 다양한 앱 키에 대해서 나옵니다. 저희는 안드로이드니까 네이티브 앱 키를 사용할 예정입니다.

 

 

SDK 라이브러리 추가

 

apis.map.kakao.com/android/guide/

에 들어가셔서 

 

SDK를 다운받아줍니다.

 

다운로드를 받고 알집을 풀게되면 다음과 같이 

libDaumMapAndroid.jar파일과 아키텍쳐별로 libMapEnginApi.so파일로 구성되어 있습니다.

 

이제 이 파일들을 안드로이드 스튜디오 프로젝트에 SDK라이브러리를 추가해줍니다.

 

다음과 같이 

libDaumMapAndroid.jar파일은 /app/libs/에 넣어주고,

나머지 파일들은 app/source/main/jniLibs에 복사를 해주시면 됩니다.

 

마지막으로 build.gradle(Module:app)에 다음과 같이 아까 SDK라이브러리를 복사한 라이브러리를 추가해주면 daum map api를 사용할 수 있습니다.

	
    implementation files('libs/libDaumMapAndroid.jar')
    

 

라이브러리 사용하기

이제 본 프로젝트로 들어와서 AndroidManifest.xml에 Permission과 앱 키를 주가해줘야합니다.

 

manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest>

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


    <application
        android:usesCleartextTraffic="true"
        android:networkSecurityConfig="@xml/network_security_config"
        ...>
        <activity android:name=".MainActivity">
            ...
        </activity>
        <meta-data android:name="com.kakao.sdk.AppKey" android:value="5416ba37b7be46d1f8bb2c4287931d7a"/>
    </application>

</manifest>

지도 SDK의 지도 타일은 http 통신을 하기 때문에 http 통신에 대한 예외 처리를 해 주셔야 합니다. 

 

res/xml 에 network_security_config.xml을 생성해줍니다.

network_security_config.xml

	
    <?xml version="1.0" encoding="utf-8"?>
	<network-security-config>
	    <base-config cleartextTrafficPermitted="true">
	        <trust-anchors>
	            <certificates src="system" />
	        </trust-anchors>
	    </base-config>
	</network-security-config>
	

이제 네트워크와 API설정은 끝났고, 맵뷰를 생성해보겠습니다.

 

activity_main.xml

	
    <?xml version="1.0" encoding="utf-8"?>
	<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
	    xmlns:tools="http://schemas.android.com/tools"
	    android:orientation="vertical"
	    android:layout_width="match_parent"
	    android:layout_height="match_parent"
	    tools:context=".MainActivity">
	
	    <RelativeLayout
	        android:id="@+id/map_view"
	        android:layout_width="match_parent"
	        android:layout_height="match_parent"/>
	
	</RelativeLayout>
	

 

MainActivity.java

	
    package com.lakue.googlemapsample;
	
	import android.os.Bundle;
	import android.view.ViewGroup;
	
	import androidx.appcompat.app.AppCompatActivity;
	
	import net.daum.mf.map.api.MapView;
	
	
	public class MainActivity extends AppCompatActivity {
	
	    @Override
	    protected void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.activity_main);
	
	        MapView mapView = new MapView(this);
	
	        ViewGroup mapViewContainer = (ViewGroup) findViewById(R.id.map_view);
	        mapViewContainer.addView(mapView);
	    }
	
	}
	

주의할점은 MapView를 Import할 때 두가지가 나오는데 'net.daum.mf.map.api.MapView'를 import해줘야합니다.

 

이제 KakaoMap Api연동이 완성되었습니다~

Comments