문서 / 설정 / Android / Mappls
Mappls 설정
Mappls(MapmyIndia)의 공식 Android SDK를 MapConductor에서 쓰는 절차입니다. 인증은 앱 쪽에 두는 설정 파일로 합니다.
MODULE
com.mapconductor:for-mappls
API KEY
필요
VIEW
MapplsMapView
TIME
15분
시작하기 전에
Android 개발 환경(Android Studio)
Mappls(MapmyIndia)의 계정과 자격 정보
STEP 01
자격 정보를 취득한다
Mappls의 개발자 콘솔에서 앱을 등록하고, 자격 정보를 취득합니다. Mappls는 타사 같은 1개의 API 키가 아니라, 앱에 두는 설정 파일(.a.conf / .a.olf)로 인증합니다.
STEP 02
저장소를 추가한다
Mappls SDK는 Maven Central이 아니라 Mappls 자신의 저장소에서 배포되고 있습니다.
settings.gradle.ktsKotlin
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url = uri("https://maven.mappls.com/repository/mappls/") }
}
}STEP 03
의존 관계를 추가한다
Mappls SDK와 MapConductor의 모듈을 넣습니다. 판은 BOM이 맞춥니다.
app/build.gradle.ktsKotlin
dependencies {
// Mappls Android SDK
implementation("com.mappls.sdk:mappls-android-sdk:9.0.3")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:compose")
implementation("com.mapconductor:for-mappls")
}STEP 04
인증을 설정한다
Mappls에서 받은 .a.conf / .a.olf를 앱에 배치하고, Mappls의 Gradle 플러그인(com.mappls.services.android)을 적용합니다. MapConductor는 자격 정보를 AndroidManifest에서 읽지 않습니다. 지도가 만들어지기 전에 Mappls SDK 자신의 작법으로 초기화되어 있을 필요가 있습니다. 설정 파일은 소스 관리에 넣지 마세요.
동작 확인
여기까지 보이면 완료
델리를 중심으로 지도를 냅니다. 타일이 읽히면 완료입니다.
@Composable
fun TestMappls(modifier: Modifier = Modifier) {
val mapState = rememberMapplsMapViewState(
mapDesign = MapplsDesign.Default,
cameraPosition = MapCameraPosition(
position = GeoPoint(latitude = 28.6139, longitude = 77.2090),
zoom = 11.0,
),
)
MapplsMapView(state = mapState, modifier = modifier.fillMaxSize())
}지도 디자인
Notes
Default
계약에 관계없이 쓸 수 있는 기본 스타일
StandardDay
표준의 낮 스타일
StandardNight / GreyDay
추가 요금의 유료 옵션. 계약하지 않으면 SDK가 튕겨 냄
잘 안 될 때
지도가 새하얗고, 타일이 한 장도 오지 않는다
- 자격 정보가 지도 생성보다 먼저 설정되어 있는지 확인합니다.
- Mappls의 콘솔에서 키가 유효한지, 이용 한도를 넘지 않았는지 확인합니다.
- 단말이 네트워크에 나갈 수 있는지 확인합니다.
스타일을 바꾸면 style not found가 된다
- StandardNight와 GreyDay는 추가 요금의 유료 옵션입니다. 계약하지 않은 경우는 Default나 StandardDay를 써 주세요.
래스터 레이어 등, Mappls 이외의 URL의 타일이 나오지 않는다
- Mappls의 네이티브 HTTP 층은, URL에 mappls / mapmyindia를 포함하지 않는 요청을 버리거나 잘라 냅니다. MapConductor는 이것을 회피해 두었지만, SDK의 HTTP 모듈을 직접 교체하고 있는 경우는 회피도 벗겨집니다.
다음
마커・폴리라인・폴리곤・원・그라운드 이미지・래스터 레이어・InfoBubble은 공통 API인 채로 쓸 수 있습니다. 프로바이더를 교체해도 앱 쪽의 코드는 달라지지 않습니다.