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

การตั้งค่า Longdo

ขั้นตอนการใช้ Longdo Map API3 SDK จาก MapConductor เป็นผู้ให้บริการที่เข้มแข็งด้านแผนที่ประเทศไทย รับจาก Maven Repository ของ Longdo

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

ก่อนเริ่ม

สภาพแวดล้อมการพัฒนา Android (Android Studio)
คีย์ API ที่ออกโดย Longdo Map Console
STEP 01

รับคีย์ API

ออกคีย์ใน Longdo Map Console 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 จาก Manifest สามารถตั้งค่าจากโค้ดได้

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"
ข้อควรระวัง
อย่า commit 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

การแก้ปัญหา

แผนที่ไม่ปรากฏ

  • ตรวจสอบใน Console ว่าคีย์ถูกเชื่อมโยงกับชื่อแพ็กเกจของแอปหรือไม่ SDK จะส่งชื่อแพ็กเกจเพื่อตรวจสอบ
  • ตรวจสอบว่ามีสิทธิ์ INTERNET หรือไม่

บิลด์ไม่ผ่าน

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

ถัดไป

เครื่องหมาย เส้นโค้ง รูปหลายเหลี่ยม วงกลม ภาพฐาน เลเยอร์แรสเตอร์ และ InfoBubble ใช้งานได้ด้วย API ร่วมกันทั้งหมด เนื่องจาก Android SDK ของ Longdo มีการกำหนดค่าให้ทำงาน Longdo Map JS API3 ใน WebView รูปทรงจะถูกเพิ่มลงใน MapLibre GL ภายในเป็น GeoJSON source และ fill/line layer Hit test จะดูแลโดยการตรวจจับรองรับ Geodesic ฝั่ง Core