페이지 이동경로
  • 문서>
  • 카카오내비

카카오내비

Legacy Android

이 문서는 Legacy Kakao SDK for Android(이하 Legacy Android SDK)를 사용한 카카오내비 API 구현 방법을 소개합니다.

애플리케이션 설정 확인

이 기능을 사용하려면 애플리케이션 설정에 Android 플랫폼 및 키 해시 등 정보가 등록되어 있어야 합니다. 자세한 내용은 애플리케이션 등록 가이드를 참고합니다.

시작하기 전에

build.gradle 파일에 카카오내비 모듈을 설정합니다. project.KAKAO_SDK_VERSION에는 Legacy Android SDK 버전을 입력합니다.

build.gradle
dependencies {
    compile group: 'com.kakao.sdk', name: 'kakaonavi', version: project.KAKAO_SDK_VERSION
}

API 요청은 KakaoNaviService를 이용합니다. KakaoNaviService는 인텐트 호출을 통하여 카카오내비 앱을 통해 목적지 공유 및 길 찾기 기능을 실행합니다.

파라미터 구성

카카오내비 API는 카카오내비 앱을 호출할 때, 제공되는 모든 파라미터들 채워넣을 수 있는 KakaoNaviParams 클래스 객체를 사용합니다. KakaoNaviParams를 구성하는 클래스들은 파라미터 개수가 많기 때문에 빌더 객체를 사용해 만들도록 구성되어 있습니다.

각 파라미터 클래스는 필수 파라미터를 포함하는 newBuilder 메소드를 가지고 있습니다. 이 메소드를 사용해 필수 파라미터들을 채운 빌더 객체를 만들고, 선택 파라미터들을 setter를 통해 지정한 뒤 build() 메소드로 객체를 만듭니다.

클래스 및 파라미터 정보

KakaoNaviParams: 카카오내비 API 호출에 필요한 모든 파라미터를 담은 클래스(Class)
Name Type Description Required
destination Location 목적지 O
naviOptions NaviOptions 옵션 X
stops List<Location> 경유지, 3개까지 가능
길 안내 기능에서만 사용
X
Location: 목적지 정의 클래스
Name Type Description Required
name String 목적지 이름 O
x Double 목적지 x (경도, 필수) O
y Double 목적지 y (위도, 필수) O
NaviOptions: 선택 파라미터 정의 클래스
Name Type Description Default
coordType CoordType 좌표 타입
목적지 공유 기능에서도 사용
katec
vehicleType VehicleType 차종 FIRST
rpOption RpOption 경로 옵션 FASTEST
routeInfo Boolean 전체 경로 보기 여부 false
startX Double 시작 좌표 x
startY Double 시작 좌표 y
startAngle Integer 시작 앵글(0~359) -1
userId String 길 안내 유저 구분을 위한 USER ID(택시에서 사용)
returnUri String 길 안내 종료(전체 경로보기시 종료) 후 호출 될 URI
CoordType: 좌표 타입 정의 Enum 클래스
Name Value Description
WGS84 "wgs84" World Geodetic System 84 좌표계
KATEC "katec" Katec 좌표계
VehicleType: 차종 정의 Enum 클래스
Name Value Description
FIRST 1 1종 (승용차/소형승합차/소형화물차)
SECOND 2 2종 (중형승합차/중형화물차)
THIRD 3 3종 (대형승합차/2축 대형화물차)
FOURTH 4 4종 (3축 대형화물차)
FIFTH 5 5종 (4축이상 특수화물차)
SIXTH 6 6종 (경차)
TWO_WHEEL 7 이륜차
RpOption: 경로 옵션 정의 Enum 클래스
Name Value Description
FAST 1 빠른길
FREE 2 무료 도로
SHORTEST 3 최단거리
NO_AUTO 4 자동차전용제외
WIDE 5 큰길 우선
HIGHWAY 6 고속도로 우선
NORMAL 8 일반 도로 우선

클래스 및 파라미터 구성 예제

KakaoNaviParams
// 경유지를 포함하지 않는 파라미터
KakaoNaviParams params = KakaoNaviParams.newBuilder(destination)
        .setNaviOptions(options)
        .build();

// 경유지를 1개 포함하는 파라미터
List<Location> viaList = Arrays.asList(
        Location.newBuilder("서서울호수공원", 126.8322289016308, 37.528495607451205).build()
);
KakaoNaviParams params = KakaoNaviParams.newBuilder(destination)
        .setNaviOptions(options)
        .setViaList(viaList)
        .build();
Location
// Location.Builder를 사용하여 Location 객체를 만든다.
Location destination = Location.newBuilder("카카오 판교 오피스", 127.10821222694533, 37.40205604363057).build();
NaviOptions
NaviOptions options = NaviOptions.newBuilder().setCoordType(CoordType.WGS84).setVehicleType(VehicleType.FIRST).setRpOption(RpOption.SHORTEST).build();

길 안내

KakaoNaviService#navigate API를 호출합니다. 파라미터로 경유지를 세개까지 지정할 수 있습니다.

Parameter
Name Type Description
activity Activity 카카오내비 앱의 액티비티를 호출하는 현재 앱의 액티비티
params KakaoNaviParams KakaoNaviParams 구성 요소 참고
Sample
// 목적지 생성
Location destination = Location.newBuilder("카카오 판교오피스", 127.10821222694533, 37.40205604363057).build();

// 경유지 목록 생성
List<Location> viaList = Arrays.asList(
        Location.newBuilder("서서울호수공원", 126.8322289016308, 37.528495607451205).build()
);

// 파라미터 생성
KakaoNaviParams params = KakaoNaviParams.newBuilder(destination)
        .setNaviOptions(NaviOptions.newBuilder()
                .setCoordType(CoordType.WGS84)      // 좌표계 
                .setVehicleType(VehicleType.FIRST)  // 차종 
                .setRpOption(RpOption.SHORTEST)     // 경로 옵션
                .build())
        .setViaList(viaList)
        .build();

// 길 안내 시작
KakaoNaviService.getInstance().navigate(this, params);

다음은 각각 SDK를 통하여 길 안내를 실행하였을 때 안내가 시작된 화면과 경유지를 지정하여 길 안내를 시작한 화면입니다.

길 안내 예시 화면

목적지 공유하기

KakaoNaviService#shareDestination API를 호출합니다.

Parameter
Name Type Description
activity Activity 카카오내비 앱의 목적지 공유하기 액티비티를 호출하는 현재 앱의 액티비티(Activity)
params KakaoNaviParams KakaoNaviParams 구성 요소 참고
Sample
// 목적지 생성
Location destination = Location.newBuilder("카카오 판교 오피스", 127.10821222694533, 37.40205604363057).build();

// 파라미터 생성
KakaoNaviParams params = KakaoNaviParams.newBuilder(destination)
        .setNaviOptions(NaviOptions.newBuilder()
                .setCoordType(CoordType.WGS84)      // 좌표계 설정
                .build())
        .build();

// 공유하기
KakaoNaviService.getInstance().shareDestination(this, params);

다음은 Legacy Android SDK를 통하여 목적지를 공유하였을 때 실행되는 카카오내비의 Activity입니다.

목적지 공유 예시 화면

더보기