การตั้งค่า HERE
ขั้นตอนการใช้งาน HERE SDK (คาดว่าเป็น Explore Edition) จาก MapConductor เนื่องจาก HERE SDK ถูกจำหน่ายในรูปแบบ AAR ไม่ใช่ผ่าน Maven จึงมีขั้นตอนในการวางไฟล์ลงในโปรเจกต์
ก่อนเริ่ม
เตรียมข้อมูลรับรองและ AAR
- สร้างบัญชี HERE Developer
- สร้างโปรเจกต์ใน HERE Developer Portal
- สร้าง Access Key ID และ Secret
- ดาวน์โหลด AAR ของ HERE SDK Explore Android หากเป็นซีรีส์ 4.26 จะสามารถทำงานได้
วาง AAR ลงในโปรเจกต์
วาง AAR ไว้ที่ libs/ ของโปรเจกต์ ชื่อไฟล์ต้องตรงกับชื่อที่ Gradle อ้างอิงโดยสมบูรณ์
<project root>/
└── libs/
└── heresdk-explore-android-4.27.2.0.309975.aarเพิ่ม Secrets Gradle Plugin
กลไกเพื่อหลีกเลี่ยงการวางคีย์ไว้ในการจัดการซอร์สโค้ด ปลั๊กอินจะอ่าน secrets.properties และแทรกค่าลงในตัวยึดตำแหน่งใน AndroidManifest.xml ขณะสร้าง
plugins {
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}เพิ่มการพึ่งพา
AAR จะถูกอ้างอิงเป็นไฟล์ในเครื่อง โปรดปรับชื่อไฟล์ให้ตรงกับไฟล์ที่วางไว้จริง
plugins {
// ... other plugins
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}
dependencies {
// HERE SDK (local AAR).
// This build number is only the one MapConductor is developed against —
// use the file name of the AAR you downloaded.
implementation(
files("${rootProject.projectDir}/libs/heresdk-explore-android-4.27.2.0.309975.aar")
)
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-here")
}ตั้งค่าไฟล์ Manifest และข้อมูลรับรอง
HERE ใช้ทั้ง ID และ Secret โดยส่งผ่านทั้งคู่ผ่านตัวยึดตำแหน่ง
<manifest>
<!-- Add internet and location permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application>
<!-- HERE Access Key ID -->
<meta-data
android:name="HERE_ACCESS_KEY_ID"
android:value="${HERE_ACCESS_KEY_ID}" />
<!-- HERE Access Key Secret -->
<meta-data
android:name="HERE_ACCESS_KEY_SECRET"
android:value="${HERE_ACCESS_KEY_SECRET}" />
</application>
</manifest>HERE_ACCESS_KEY_ID=your_actual_here_access_key_id HERE_ACCESS_KEY_SECRET=your_actual_here_access_key_secret
ตรวจสอบ
สิ่งที่ควรเห็น
หากแผนที่ของ HERE ปรากฏขึ้น ถือว่าเสร็จสิ้น
@Composable
fun TestHere(modifier: Modifier = Modifier) {
val mapState = rememberHereMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
)
// If the map appears, the setup is correct.
HereMapView(modifier = modifier, state = mapState)
}ดีไซน์แผนที่
HereMapDesign รองรับรูปแบบแผนที่ของ HERE มีสไตล์สำหรับวัตถุประสงค์ต่างๆ เช่น กลางวัน/กลางคืน หรือสำหรับลอจิสติกส์
การแก้ปัญหา
แผนที่ไม่โหลด
- ตรวจสอบว่า Access Key ID และ Secret ใน `secrets.properties` ถูกต้องหรือไม่
- ตรวจสอบว่าคีย์ถูกต้อง (ไม่ถูกปิดใช้งาน) หรือไม่
รายงานว่าไม่พบ AAR
- ตรวจสอบว่า AAR อยู่ใน `libs/` หรือไม่
- ตรวจสอบว่าชื่อไฟล์ตรงกับที่ระบุใน `build.gradle.kts` อย่างสมบูรณ์ (รวมถึงหมายเลขเวอร์ชัน) หรือไม่
บิลด์ไม่ผ่าน
- ตรวจสอบว่าพิกัดและเวอร์ชันของ Map SDK ตรงกับที่ระบุในคาตาล็อกเวอร์ชันหรือไม่
- ตรวจสอบว่ามีคำจำกัดความของที่เก็บใน `settings.gradle.kts` หรือไม่ (หาก `repositoriesMode` คือ `FAIL_ON_PROJECT_REPOS` รายการ `repositories` ฝั่งโมดูลจะถูกละเว้น)
- หากมีการติดตั้ง Map SDK หลายตัวพร้อมกัน ให้ตรวจสอบความขัดแย้งของการพึ่งพาด้วย `./gradlew :app:dependencies`
ถัดไป
เมื่อ `HereMapView` ปรากฏขึ้น คุณสามารถวางซ้อนโอเวอร์เลย์ด้วย API ทั่วไปเดียวกันกับผู้ให้บริการรายอื่นได้