Doku / Einrichtung / Android / Mappls

Mappls einrichten

Schritte zur Verwendung des offiziellen Android SDK von Mappls (MapmyIndia) mit MapConductor. Die Authentifizierung erfolgt über eine Konfigurationsdatei, die in der App abgelegt wird.

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

Bevor Sie beginnen

Android-Entwicklungsumgebung (Android Studio)
Mappls-Konto und Anmeldedaten
STEP 01

Anmeldedaten abrufen

Registrieren Sie die App in der Mappls-Entwicklerkonsole und rufen Sie die Anmeldedaten ab. Mappls authentifiziert nicht mit einem einzigen API-Schlüssel wie andere Anbieter, sondern mit einer Konfigurationsdatei (.a.conf / .a.olf), die in der App abgelegt wird.

STEP 02

Repository hinzufügen

Das Mappls SDK wird nicht über Maven Central, sondern über das eigene Repository von Mappls verteilt.

settings.gradle.ktsKotlin
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven { url = uri("https://maven.mappls.com/repository/mappls/") }
    }
}
STEP 03

Abhängigkeiten hinzufügen

Fügen Sie das Mappls SDK und das MapConductor-Modul hinzu. Die Versionen werden über die BOM abgeglichen.

app/build.gradle.ktsKotlin
dependencies {
    // Mappls Android SDK
    implementation("com.mappls.sdk:mappls-android-sdk:9.0.3")

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

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

Authentifizierung einrichten

Platzieren Sie die von Mappls erhaltenen .a.conf / .a.olf in der App und wenden Sie das Mappls-Gradle-Plugin (com.mappls.services.android) an. MapConductor liest die Anmeldedaten nicht aus AndroidManifest. Es muss vor der Erstellung der Karte auf die native Art des Mappls SDK initialisiert werden. Fügen Sie die Konfigurationsdatei nicht der Quellcodeverwaltung hinzu.

PRÜFEN

Was Sie sehen sollten

Zeigen Sie eine Karte mit Zentrum Delhi an. Wenn die Kacheln geladen sind, sind Sie fertig.

@Composable
fun TestMappls(modifier: Modifier = Modifier) {
    val mapState = rememberMapplsMapViewState(
        mapDesign = MapplsDesign.Default,
        cameraPosition = MapCameraPosition(
            position = GeoPoint(latitude = 28.6139, longitude = 77.2090),
            zoom = 11.0,
        ),
    )

    MapplsMapView(state = mapState, modifier = modifier.fillMaxSize())
}

Kartendesigns

Notes
Default
Standardstil, der unabhängig vom Vertrag verwendet werden kann
StandardDay
Standardtag-Stil
StandardNight / GreyDay
Kostenpflichtige Option mit zusätzlichen Gebühren. Ohne Vertrag weist das SDK dies zurück.

Fehlerbehebung

Die Karte ist vollständig weiß, keine einzige Kachel wird geladen

  • Überprüfen Sie, ob die Anmeldedaten vor der Kartenerstellung eingerichtet wurden.
  • Überprüfen Sie in der Mappls-Konsole, ob der Schlüssel gültig ist und ob das Nutzungslimit nicht überschritten wurde.
  • Überprüfen Sie, ob das Gerät Netzwerkzugriff hat.

Beim Ändern des Stils tritt „style not found“ auf

  • StandardNight und GreyDay sind kostenpflichtige Optionen mit zusätzlichen Gebühren. Wenn Sie keinen Vertrag haben, verwenden Sie Default oder StandardDay.

Kacheln von URLs außerhalb von Mappls, wie z. B. Raster-Layern, werden nicht angezeigt

  • Die native HTTP-Ebene von Mappls verwirft oder kürzt Anforderungen, die in der URL nicht mappls / mapmyindia enthalten. MapConductor umgeht dies bereits, aber wenn Sie das HTTP-Modul des SDK selbst austauschen, entfällt auch die Umgehung.

Weiter

Marker, Polyline, Polygon, Circle, GroundOverlay, RasterLayer und InfoBubble können weiterhin über die gemeinsame API verwendet werden. Der Anwendungscode ändert sich nicht, wenn der Anbieter ausgetauscht wird.