Docs / Setup / Android / Mappls

Mappls setup

How to drive Mappls (MapmyIndia)'s official Android SDK through MapConductor. Authentication happens through configuration files you place in your app.

MODULE
com.mapconductor:for-mappls
API KEY
Required
VIEW
MapplsMapView
TIME
15 min
Same provider, other platformsiOSReact

Before you start

An Android development environment (Android Studio)
A Mappls (MapmyIndia) account and credentials
STEP 01

Get your credentials

Register your app in the Mappls developer console and obtain its credentials. Mappls does not authenticate with a single API key like the other providers: it reads configuration files (.a.conf / .a.olf) that you place in the app.

STEP 02

Add the repository

The Mappls SDK is not on Maven Central; it comes from Mappls’s own repository.

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

Add the dependencies

Add the Mappls SDK and the MapConductor modules. The BOM pins the versions.

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

Wire up authentication

Place the .a.conf / .a.olf files you received from Mappls into your app and apply the Mappls Gradle plugin (com.mappls.services.android). MapConductor does not read Mappls credentials from the manifest: the Mappls SDK must be initialised its own way before the first map is created. Keep those files out of source control.

VERIFY

What you should see

Show a map centred on Delhi. Tiles loading means you are done.

@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())
}

Map designs

Notes
Default
The default style, available on any plan
StandardDay
The standard daytime style
StandardNight / GreyDay
Paid add-ons. Without the entitlement the SDK rejects them

Troubleshooting

The map is blank and no tiles arrive

  • Check that the credentials are set before the first map is created.
  • Confirm the key is active in the Mappls console and you are within quota.
  • Confirm the device can reach the network.

Switching style reports "style not found"

  • StandardNight and GreyDay are paid add-ons. Without the entitlement, use Default or StandardDay.

Raster layers from non-Mappls URLs do not draw

  • Mappls's native HTTP layer drops or truncates requests whose URL contains neither mappls nor mapmyindia. MapConductor works around this; replacing the SDK's HTTP module yourself removes the workaround.

Next

Markers, polylines, polygons, circles, ground images, raster layers and info bubbles all work through the shared API. Swapping providers does not change your application code.