문서 / 설정 / Android / Longdo

Longdo 설정

Longdo Map API3 SDK를 MapConductor에서 쓰는 절차입니다. 태국의 지도에 강한 프로바이더로, Longdo 자신의 Maven 저장소에서 취득합니다.

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

시작하기 전에

Android 개발 환경(Android Studio)
Longdo Map 콘솔에서 발행한 API 키
STEP 01

API 키를 취득한다

Longdo Map 콘솔에서 키를 발행합니다. SDK는 검증을 위해 앱의 패키지 이름을 보내므로, 키를 그 패키지 이름에 연결해 등록해 둘 필요가 있습니다.

STEP 02

Longdo의 저장소를 더한다

settings.gradle.ktsKotlin
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()

        // Longdo Map API3 SDK repository
        maven {
            url = uri("https://maven.longdo.com/artifactory/libs-release-public")
        }
    }
}
STEP 03

의존 관계를 추가한다

app/build.gradle.ktsKotlin
dependencies {
    // Longdo Map API3 SDK
    implementation("com.longdo.map:sdk3:1.3.0")

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

    implementation("com.mapconductor:core")
    implementation("com.mapconductor:for-longdo")
}
STEP 04

API 키를 넘긴다

모듈은 매니페스트의 longdo.map.key를 읽습니다. 코드에서 설정할 수도 있습니다.

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

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

동작 확인

여기까지 보이면 완료

방콕을 중심으로 지도가 나오면 완료입니다.

TestLongdo.ktJetpack Compose
@Composable
fun TestLongdo(modifier: Modifier = Modifier) {
    val mapState = rememberLongdoMapViewState(
        mapDesign = LongdoDesign.Normal,
        cameraPosition = MapCameraPosition(
            position = GeoPoint(13.7563, 100.5018),
            zoom = 12.0,
        ),
    )

    LongdoMapView(
        state = mapState,
        modifier = modifier,
        onMapLoaded = { /* map ready */ },
        onMapClick = { point -> /* tapped at point */ },
    )
}

지도 디자인

LongdoDesign은 Longdo의 베이스 레이어에 대응합니다.

LongdoDesign
Notes
Normal / Easy / Political
표준 계열의 스타일
Pastel / PastelGray / Light / Gray
옅은 스타일
Night / Dark / Hard
암색・고대비
Satellite / Hybrid
위성 화상과 하이브리드
Osm
OpenStreetMap 기반

잘 안 될 때

지도가 나오지 않는다

  • 콘솔에서 키가 앱의 패키지 이름에 연결되어 있는지 확인합니다. SDK는 패키지 이름을 보내 검증합니다.
  • INTERNET 퍼미션이 붙어 있는지 확인합니다.

빌드가 통과하지 않는다

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

다음

마커・폴리라인・폴리곤・원・그라운드 이미지・래스터 레이어・InfoBubble은 모두 공통 API로 쓸 수 있습니다. Longdo의 Android SDK는 Longdo Map JS API3를 WebView에서 돌리는 구성이기 때문에, 도형은 내부의 MapLibre GL에 GeoJSON 소스와 fill / line 레이어로 추가됩니다. 히트 테스트는 코어 쪽의 측지선 대응 판정이 담당합니다.