Doku / Einrichtung / Android / MapTiler

MapTiler einrichten

Hier finden Sie die Schritte zur Verwendung des offiziellen MapTiler Android SDK (com.maptiler:maptiler-sdk-kotlin) von MapConductor. Sie können Referenzstile von MapTiler Cloud anhand des Namens auswählen.

MODULE
com.mapconductor:for-maptiler
API KEY
Erforderlich
VIEW
MapTilerMapView
TIME
10 Minuten
Derselbe Anbieter, andere PlattformeniOSReact

Bevor Sie beginnen

Android-Entwicklungsumgebung (Android Studio)
Konto und API-Schlüssel für MapTiler Cloud
STEP 01

API-Schlüssel abrufen

Erstellen Sie im Dashboard von MapTiler Cloud einen API-Schlüssel. Es ist ein kostenloses Kontingent verfügbar.

STEP 02

Abhängigkeiten hinzufügen

Das MapTiler SDK kann von Maven Central bezogen werden.

app/build.gradle.ktsKotlin
dependencies {
    // MapTiler Android SDK
    implementation("com.maptiler:maptiler-sdk-kotlin:2.1.0")

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

    implementation("com.mapconductor:core")
    implementation("com.mapconductor:for-maptiler")
}
STEP 03

API-Schlüssel übergeben

Das Modul liest den Schlüssel aus den meta-data des Manifests. Bei Verwendung des Secrets Gradle Plugin geschieht dies über einen Platzhalter. Es kann auch direkt aus dem Code konfiguriert werden.

AndroidManifest.xmlXML
<manifest>
    <uses-permission android:name="android.permission.INTERNET" />

    <application>
        <meta-data
            android:name="MAPTILER_API_KEY"
            android:value="${MAPTILER_API_KEY}" />
    </application>
</manifest>
MainActivity.ktKotlin
// Alternative: set it in code before the first map is shown
com.maptiler.maptilersdk.MTConfig.apiKey = "YOUR_MAPTILER_API_KEY"
ACHTUNG
Committen Sie secrets.properties nicht in die Versionsverwaltung. Durch Hinzufügen zu .gitignore vermeiden Sie Fehler. In CI-Umgebungen wird der Schlüssel über andere sichere Wege wie Umgebungsvariablen übergeben.

PRÜFEN

Was Sie sehen sollten

Wählen Sie einen Stil aus und zeigen Sie die Karte an. Wenn die Kacheln geladen sind, sind Sie fertig.

TestMapTiler.ktJetpack Compose
@Composable
fun TestMapTiler(modifier: Modifier = Modifier) {
    val mapState = rememberMapTilerMapViewState(
        mapDesign = MapTilerDesign.Streets,
        cameraPosition = MapCameraPosition(
            position = GeoPoint(35.6812, 139.7671),
            zoom = 11.0,
        ),
    )

    // If the map appears, the setup is correct.
    MapTilerMapView(state = mapState, modifier = modifier)
}

Kartendesigns

MapTilerDesign listet die Referenzstile von MapTiler Cloud unverändert auf.

MapTilerDesign
Notes
Streets / StreetsDark / StreetsLight
Standard Straßenkarte mit Hell-/Dunkel-Varianten
Basic / Bright
Stile mit reduzierter Informationsdichte
Satellite
Satellitenbilder
Outdoor / Winter / Topo
Freizeit, Winter, Gelände
Toner / Dataviz / Backdrop
Für Basiskarten zur Visualisierung von Daten
Ocean / Landscape / Aquarelle / OpenStreetMap
Weitere thematische Stile

Fehlerbehebung

Karte bleibt komplett weiß

  • Überprüfen Sie, ob im Manifest bei MAPTILER_API_KEY der tatsächliche Wert eingetragen ist.
  • Überprüfen Sie auf der Seite von MapTiler Cloud, ob der Schlüssel gültig ist und das kostenlose Kontingent nicht überschritten wurde.
  • Überprüfen Sie, ob die INTERNET-Berechtigung erteilt wurde.

Build schlägt fehl

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

Weiter

Marker, Polyline, Polygon, Circle, GroundImage, RasterLayer, InfoBubble können alle über die gemeinsame API verwendet werden. Da das Android SDK von MapTiler MapLibre GL JS in einem WebView ausführt, werden Formen dem Stil als GeoJSON-Quellen und fill-/line-Layer hinzugefügt. Da für die geodätische Interpolation und die Behandlung von Löchern die gemeinsame Kernimplementierung verwendet wird, haben sie dieselbe Form wie bei anderen Anbietern.