문서 / 설정 / Android / MapTiler

MapTiler 설정

MapTiler의 공식 Android SDK(com.maptiler:maptiler-sdk-kotlin)를 MapConductor에서 쓰는 절차입니다. MapTiler Cloud의 참조 스타일을 이름으로 고를 수 있습니다.

MODULE
com.mapconductor:for-maptiler
API KEY
필요
VIEW
MapTilerMapView
TIME
10분
같은 프로바이더, 다른 플랫폼iOSReact

시작하기 전에

Android 개발 환경(Android Studio)
MapTiler Cloud의 계정과 API 키
STEP 01

API 키를 취득한다

MapTiler Cloud의 대시보드에서 API 키를 발행합니다. 무료 구간이 있습니다.

STEP 02

의존 관계를 추가한다

MapTiler SDK는 Maven Central에서 취득할 수 있습니다.

app/build.gradle.ktsKotlin
dependencies {
    // MapTiler Android SDK
    implementation("com.maptiler:maptiler-sdk-kotlin:2.1.0")

    // MapConductor BOM pins every module below
    implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))

    implementation("com.mapconductor:core")
    implementation("com.mapconductor:for-maptiler")
}
STEP 03

API 키를 넘긴다

모듈은 매니페스트의 meta-data에서 키를 읽습니다. Secrets Gradle Plugin을 쓰는 경우는 플레이스홀더 경유로 합니다. 코드에서 직접 설정할 수도 있습니다.

AndroidManifest.xmlXML
<manifest>
    <uses-permission android:name="android.permission.INTERNET" />

    <application>
        <meta-data
            android:name="MAPTILER_API_KEY"
            android:value="${MAPTILER_API_KEY}" />
    </application>
</manifest>
MainActivity.ktKotlin
// Alternative: set it in code before the first map is shown
com.maptiler.maptilersdk.MTConfig.apiKey = "YOUR_MAPTILER_API_KEY"
주의
secrets.properties는 버전 관리에 커밋하지 마세요. .gitignore에 추가해 두면 사고를 막을 수 있습니다. CI에서는 환경 변수 등 다른 안전한 경로로 넘깁니다.

동작 확인

여기까지 보이면 완료

스타일을 골라 지도를 냅니다. 타일이 읽히면 완료입니다.

TestMapTiler.ktJetpack Compose
@Composable
fun TestMapTiler(modifier: Modifier = Modifier) {
    val mapState = rememberMapTilerMapViewState(
        mapDesign = MapTilerDesign.Streets,
        cameraPosition = MapCameraPosition(
            position = GeoPoint(35.6812, 139.7671),
            zoom = 11.0,
        ),
    )

    // If the map appears, the setup is correct.
    MapTilerMapView(state = mapState, modifier = modifier)
}

지도 디자인

MapTilerDesign은 MapTiler Cloud의 참조 스타일을 그대로 나열한 것입니다.

MapTilerDesign
Notes
Streets / StreetsDark / StreetsLight
표준의 도로 지도와 명암의 배리에이션
Basic / Bright
정보량을 줄인 스타일
Satellite
위성 화상
Outdoor / Winter / Topo
아웃도어・동계・지형
Toner / Dataviz / Backdrop
데이터를 얹는 바탕용
Ocean / Landscape / Aquarelle / OpenStreetMap
그 밖의 테마별 스타일

잘 안 될 때

지도가 새하얀 채로

  • 매니페스트의 MAPTILER_API_KEY에 실제 값이 들어 있는지 확인합니다.
  • MapTiler Cloud 쪽에서 키가 유효한지, 무료 구간을 넘지 않았는지 확인합니다.
  • INTERNET 퍼미션이 붙어 있는지 확인합니다.

빌드가 통과하지 않는다

  • 지도 SDK의 좌표와 버전이 버전 카탈로그의 지정과 일치하는지 확인합니다.
  • 저장소 정의가 settings.gradle.kts에 있는지 확인합니다(repositoriesMode가 FAIL_ON_PROJECT_REPOS이면, 모듈 쪽의 repositories는 무시됩니다).
  • 여러 지도 SDK를 동시에 넣고 있는 경우는, 의존의 충돌이 없는지 ./gradlew :app:dependencies로 확인합니다.

다음

마커・폴리라인・폴리곤・원・그라운드 이미지・래스터 레이어・InfoBubble은 모두 공통 API로 쓸 수 있습니다. MapTiler의 Android SDK는 MapLibre GL JS를 WebView에서 돌리는 구성이기 때문에, 도형은 GeoJSON 소스와 fill / line 레이어로서 스타일에 추가됩니다. 측지선의 보간이나 구멍의 처리는 코어의 공통 구현을 쓰므로, 다른 프로바이더와 같은 형태가 됩니다.