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.
Bevor Sie beginnen
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.
Repository hinzufügen
Das Mappls SDK wird nicht über Maven Central, sondern über das eigene Repository von Mappls verteilt.
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url = uri("https://maven.mappls.com/repository/mappls/") }
}
}Abhängigkeiten hinzufügen
Fügen Sie das Mappls SDK und das MapConductor-Modul hinzu. Die Versionen werden über die BOM abgeglichen.
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")
}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
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.