나만의 지도 스타일 만들기

커스텀 지도 스타일에 대한 간략한 설명과 SDK에 적용하는 방법을 설명합니다.

스타일 제작

Map Studio 서비스를 이용하시면 폰트는 물론, 지도 색상, 범례 아이콘까지 원하는대로 바꿔 나만의 특별한 지도를 동료와 함께 수정 할 수 있어 하나의 지도 스타일을 빠르고, 효과적으로 제작하고 배포하실 수 있습니다.

Map Studio를 통한 스타일 제작 및 커스텀 스타일 적용 기능은 NHN Cloud 이용자에 한해 제공됩니다.

스타일 접근과 적용

아이나비 지도는 별도 스타일을 지정하지 않으셔도 기본 지도 스타일로 표출됩니다. Map Studio 서비스에서 제작한 커스텀 스타일은 Appkey 기준으로 관리 배포되며 SDK에서 제공하는 몇 가지 API를 이용하시면 커스텀 스타일을 지도 SDK에 적용하실 수 있습니다.

커스텀 지도 스타일 리스트 접근

지도 초기화 인증이 완료되면 Appkey 기준으로 배포된 커스텀 지도 스타일 리스트를 InaviMapSdk.setAuthSuccessCallback()에 설정된 AuthSuccessCallback 구현체로 전달됩니다. 전달된 지도 스타일 리스트는 SDK에 저장되며 InaviMapSdk.getSavedCustomMapStyles() 로 인증 여부와 상관없이 저장된 지도 스타일 리스트에 접근하실 수 있습니다.

InaviMapSdk.getInstance(this).authSuccessCallback = object: InaviMapSdk.AuthSuccessCallback{
    override fun onAuthSuccess(mapStyleList: MutableList<MapStyle>) {
        // 지도 초기화 인증 완료되면 지도 스타일 리스트를 콜백으로 전달
    }
}

// 저장된 지도 스타일 리스트 접근
val savedMapStyle: MutableList<MapStyle> = InaviMapSdk.getInstance(context).savedCustomMapStyles

다른 Appkey로 변경하는 경우 기존 저장된 스타일 리스트는 초기화되며 변경된 AppKey의 스타일 리스트로 교체 저장됩니다. 또한 올바르지 않은 Appkey로 지도 초기화 인증에 실패한 경우에도 기존 스타일 리스트는 초기화됩니다.

커스텀 지도 스타일 적용

스타일 접근 API를 이용해 접근하신 커스텀 지도 스타일 리스트에서 적용하실 하나의 스타일 선택하시고 InaviMap.setCustomMapStyle(MapStyle)를 설정하시면 지도의 스타일이 적용됩니다.

// 저장된 커스텀 스타일 리스트의 첫번째 커스텀 스타일을 지도에 적용
inaviMap.customMapStyle = InaviMapSdk.getInstance(context).savedCustomMapStyles.firstOrNull()

적용하려는 지도 스타일이 SDK에 저장된 스타일 리스트에 존재하지 않거나, 값을 null로 설정할 경우 기본 지도 스타일이 적용됩니다.

커스텀 스타일 적용 시 건물 3D 효과, 셰이프 전역 Z 인덱스, 지도 심볼 Scale 기능은 제한적으로 지원되거나 지원되지 않습니다. 추후 업데이트를 통해 지원될 예정입니다.

Last updated