Doku / Einrichtung / Android / Longdo

Longdo einrichten

Verfahren zur Verwendung des Longdo Map API3 SDK von MapConductor. Ein Anbieter mit Spezialisierung auf Karten von Thailand, abgerufen aus dem eigenen Maven-Repository von Longdo.

MODULE
com.mapconductor:for-longdo
API KEY
Erforderlich
VIEW
LongdoMapView
TIME
15 Minuten
Derselbe Anbieter, andere PlattformeniOSReact

Bevor Sie beginnen

Android-Entwicklungsumgebung (Android Studio)
API-Schlüssel, der in der Longdo Map-Konsole erstellt wurde
STEP 01

API-Schlüssel abrufen

Erstellen Sie einen Schlüssel in der Longdo Map-Konsole. Das SDK sendet den Paketnamen der App zur Überprüfung, daher muss der Schlüssel mit diesem Paketnamen verknüpft registriert werden.

STEP 02

Longdo-Repository hinzufügen

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

Abhängigkeiten hinzufügen

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-Schlüssel übergeben

Das Modul liest longdo.map.key aus dem Manifest. Es kann auch über Code konfiguriert werden.

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"
ACHTUNG
Commiten Sie secrets.properties nicht in die Versionsverwaltung. Das Hinzufügen zu .gitignore verhindert Fehler. In CI wird es über einen anderen sicheren Weg, z. B. Umgebungsvariablen, übergeben.

PRÜFEN

Was Sie sehen sollten

Fertig, wenn die Karte zentriert auf Bangkok angezeigt wird.

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 */ },
    )
}

Kartendesigns

LongdoDesign unterstützt die Basislayer von Longdo.

LongdoDesign
Notes
Normal / Easy / Political
Standard-Stil
Pastel / PastelGray / Light / Gray
Blasser Stil
Night / Dark / Hard
Dunkel / Hoher Kontrast
Satellite / Hybrid
Satellitenbild und Hybrid
Osm
OpenStreetMap-Basis

Fehlerbehebung

Karte wird nicht angezeigt

  • Überprüfen Sie in der Konsole, ob der Schlüssel mit dem Paketnamen der App verknüpft ist. Das SDK sendet den Paketnamen zur Überprüfung.
  • Überprüfen Sie, ob die INTERNET-Berechtigung erteilt ist.

Build schlägt fehl

  • Überprüfen Sie, ob Koordinaten und Version des Map-SDKs mit den Angaben im Versionskatalog übereinstimmen.
  • Überprüfen Sie, ob die Repository-Definition in settings.gradle.kts vorhanden ist (bei repositoriesMode FAIL_ON_PROJECT_REPOS werden repositories auf Modulebene ignoriert).
  • Wenn mehrere Map-SDKs gleichzeitig installiert sind, prüfen Sie mit ./gradlew :app:dependencies auf Konflikte bei den Abhängigkeiten.

Weiter

Marker, Polylinien, Polygone, Kreise, Ground Images, Raster-Layer und InfoBubble sind alle über die gemeinsame API verwendbar. Da das Android SDK von Longdo so konfiguriert ist, dass es die Longdo Map JS API3 in einem WebView ausführt, werden Figuren intern zu MapLibre GL als GeoJSON-Quelle und fill/line-Layer hinzugefügt. Hit-Tests werden durch die geodätische Erkennung auf der Core-Seite übernommen.