เอกสาร / การตั้งค่า / Android / TomTom

การตั้งค่า TomTom

นี่คือขั้นตอนในการใช้งาน TomTom Orbis Maps Display SDK จาก MapConductor เพิ่มที่เก็บ Maven เฉพาะและส่งคีย์ API ในไฟล์ Manifest

MODULE
com.mapconductor:for-tomtom
API KEY
จำเป็น
VIEW
TomTomMapView
TIME
15 นาที
ผู้ให้บริการเดียวกัน แพลตฟอร์มอื่นiOSReact

ก่อนเริ่ม

สภาพแวดล้อมการพัฒนา Android (Android Studio)
บัญชีใน TomTom Developer Portal และคีย์ API สำหรับ Orbis Maps
STEP 01

รับคีย์ API

ออกคีย์ API สำหรับ Orbis Maps ใน TomTom Developer Portal

STEP 02

เพิ่มที่เก็บของ TomTom

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

        // TomTom Orbis Maps SDK repository
        maven {
            url = uri("https://repositories.tomtom.com/artifactory/maven")
        }
    }
}
STEP 03

เพิ่มการพึ่งพา

app/build.gradle.ktsKotlin
dependencies {
    // TomTom Orbis Maps Display SDK
    implementation("com.tomtom.sdk.maps:map-display-standard:2.4.2")

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

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

เขียนคีย์ใน Manifest

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

    <application>
        <meta-data
            android:name="TOMTOM_API_KEY"
            android:value="${TOMTOM_API_KEY}" />
    </application>
</manifest>
ข้อควรระวัง
อย่าส่ง secrets.properties ไปยังการควบคุมเวอร์ชัน การเพิ่มลงใน .gitignore จะช่วยป้องกันข้อผิดพลาด ใน CI ให้ส่งผ่านเส้นทางที่ปลอดภัยอื่นๆ เช่น ตัวแปรสภาพแวดล้อม
STEP 05

ตรวจสอบธีม

การวางซ้อน UI ของ TomTom (โลโก้ ทิศทาง ฯลฯ) ถือว่าใช้ธีมจากกลุ่ม AppCompat ด้วยธีมอื่นการวาดจะทำงานแต่จะมีบันทึกคำเตือน แนะนำ Theme.AppCompat หรือกลุ่ม Theme.MaterialComponents

ตรวจสอบ

สิ่งที่ควรเห็น

เมื่อแผนที่และมาร์คเกอร์ปรากฏขึ้นก็เสร็จสมบูรณ์

TestTomTom.ktJetpack Compose
@Composable
fun TestTomTom(modifier: Modifier = Modifier) {
    val mapState = rememberTomTomMapViewState(
        mapDesign = TomTomMapDesign.Standard,
        cameraPosition = MapCameraPosition(
            position = GeoPoint(52.3676, 4.9041),
            zoom = 11.0,
        ),
    )

    TomTomMapView(state = mapState, modifier = modifier) {
        Marker(
            MarkerState(
                position = GeoPoint(52.3676, 4.9041),
                icon = DefaultMarkerIcon().copy(label = "Amsterdam"),
            ),
        )
    }
}

ดีไซน์แผนที่

TomTomMapDesign รองรับสไตล์มาตรฐานของ Orbis Maps

TomTomMapDesign
Notes
Standard
สไตล์มาตรฐานสำหรับการดู
Driving
สำหรับขับรถ
Satellite
ภาพดาวเทียม

การแก้ปัญหา

ตำแหน่งการวาดแผนที่เลื่อน

  • MapConductor ระบุ MapOptions(renderToTexture = true) เนื่องจากการวาด SurfaceView เริ่มต้นขัดแย้งกับ SubcomposeLayout ของ Compose หากคุณสร้าง MapOptions เอง จำเป็นต้องระบุเช่นเดียวกัน

บิลด์ล้มเหลว

  • ตรวจสอบว่าพิกัดและเวอร์ชันของ Map SDK ตรงกับการระบุใน Version Catalog หรือไม่
  • ตรวจสอบว่าคำจำกัดความของที่เก็บมีอยู่ใน settings.gradle.kts หรือไม่ (หาก repositoriesMode เป็น FAIL_ON_PROJECT_REPOS ที่เก็บของโมดูลจะถูกละเว้น)
  • หากคุณมี Map SDK หลายตัวพร้อมกัน ให้ตรวจสอบความขัดแย้งของการพึ่งพาด้วย ./gradlew :app:dependencies

ถัดไป

มาร์คเกอร์ เส้นโครงร่าง รูปหลายเหลี่ยม วงกลม Ground Image เลเยอร์แรสเตอร์ และ InfoBubble สามารถใช้งานได้ทั้งหมดผ่าน API ร่วม เนื่องจาก TomTom ไม่มีการลากแบบเนทีฟสำหรับมาร์คเกอร์ MapConductor จึงประมวลผล MotionEvent โดยตรงเพื่อใช้งานการลาก มาร์คเกอร์ที่ลากได้จะทำงานทันที