दस्तावेज़ / सेटअप / Android / Mapbox

Mapbox का सेटअप

MapConductor से Mapbox Maps SDK for Android का उपयोग करने की प्रक्रिया। Mapbox अपने विशेष Maven रिपॉजिटरी के माध्यम से वितरित होता है और एक्सेस टोकन को मैनिफ़ेस्ट के माध्यम से पास किया जाता है।

MODULE
com.mapconductor:for-mapbox
API KEY
एक्सेस टोकन
VIEW
MapboxMapView
TIME
15 मिनट
वही प्रोवाइडर, दूसरे प्लेटफ़ॉर्मiOSReact

शुरू करने से पहले

Android विकास वातावरण (Android Studio)
Mapbox खाता
सार्वजनिक एक्सेस टोकन (pk. से शुरू होने वाला)
STEP 01

एक्सेस टोकन प्राप्त करें

  1. Mapbox खाता बनाएं।
  2. Account Dashboard में Access tokens खोलें।
  3. डिफ़ॉल्ट सार्वजनिक टोकन का उपयोग करें या एक नया बनाएं।
सावधानी
सीक्रेट टोकन (sk. से शुरू होने वाला) को ऐप में एम्बेड न करें। ऐप में सार्वजनिक टोकन का उपयोग किया जाता है।
STEP 02

Mapbox का Maven रिपॉजिटरी जोड़ें

Mapbox Maps SDK, Maven Central पर नहीं है, इसे Mapbox के अपने रिपॉजिटरी से प्राप्त किया जाता है।

settings.gradle.ktsKotlin
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()

        // Mapbox Maven repository
        maven {
            url = uri("https://api.mapbox.com/downloads/v2/releases/maven")
        }
    }
}
STEP 03

Secrets Gradle Plugin इंस्टॉल करें

यह कुंजी को सोर्स कंट्रोल में न रखने के लिए एक तंत्र है। प्लगइन secrets.properties को पढ़ता है और बिल्ड के समय AndroidManifest.xml के प्लेसहोल्डर में मान डालता है।

(root)/build.gradle.ktsKotlin
plugins {
    id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}
STEP 04

निर्भरता जोड़ें

MapConductor NDK27 वैरिएंट के लिए बिल्ड करता है।

app/build.gradle.ktsKotlin
plugins {
    // ... other plugins
    id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}

dependencies {
    // Mapbox Maps SDK (NDK27 variant)
    implementation("com.mapbox.maps:android-ndk27:11.28.0")

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

    implementation("com.mapconductor:core")
    implementation("com.mapconductor:for-mapbox")
}
STEP 05

मैनिफ़ेस्ट और टोकन कॉन्फ़िगर करें

AndroidManifest.xmlXML
<manifest>
    <!-- Add internet and location permissions -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application>
        <!-- Mapbox Access Token -->
        <meta-data
            android:name="MAPBOX_ACCESS_TOKEN"
            android:value="${MAPBOX_ACCESS_TOKEN}" />
    </application>
</manifest>
secrets.propertiesProperties
MAPBOX_ACCESS_TOKEN=your_actual_access_token
सावधानी
secrets.properties को वर्ज़न कंट्रोल में कमिट न करें। .gitignore में जोड़ने से दुर्घटनाओं को रोका जा सकता है। CI में इसे पर्यावरण चर या अन्य सुरक्षित माध्यम से पास किया जाता है।

जाँच

आपको क्या दिखना चाहिए

नक्शा Mapbox स्टाइल में दिखाई देता है और ज़ूम, पैन और रोटेशन काम करता है, तो पूर्ण हो गया।

TestMapbox.ktJetpack Compose
@Composable
fun TestMapbox(modifier: Modifier = Modifier) {
    val mapState = rememberMapboxMapViewState(
        cameraPosition = MapCameraPosition(
            position = GeoPoint(35.6762, 139.6503),
            zoom = 12.0,
        ),
    )

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

समस्या निवारण

नक्शा पूरी तरह से सफेद है

  • जांचें कि secrets.properties में टोकन सही है या समाप्त नहीं हुआ है।
  • जांचें कि टोकन pk. से शुरू होने वाला सार्वजनिक टोकन है।
  • जांचें कि टोकन के स्कोप में maps:read शामिल है या नहीं।

निर्भरता को हल नहीं किया जा सकता

  • जांचें कि settings.gradle.kts में Mapbox का Maven रिपॉजिटरी है या नहीं।
  • जांचें कि आपने NDK27 वैरिएंट (com.mapbox.maps:android-ndk27) निर्दिष्ट किया है या नहीं।

बिल्ड पास नहीं हो रहा

  • जांचें कि मैप SDK के निर्देशांक और संस्करण वर्ज़न कैटलॉग की विनिर्देश से मेल खाते हैं या नहीं।
  • जांचें कि रिपॉजिटरी परिभाषा settings.gradle.kts में है या नहीं (यदि repositoriesMode FAIL_ON_PROJECT_REPOS है, तो मॉड्यूल के repositories को नज़रअंदाज़ कर दिया जाएगा)।
  • यदि आपके पास कई मैप SDK एक साथ हैं, तो निर्भरता संघर्ष की जांच के लिए `./gradlew :app:dependencies` चलाएं।

आगे

जैसे ही `MapboxMapView` दिखाई देता है, आप अन्य प्रदाताओं की तरह ही ओवरले ओवरलैप कर सकते हैं। आप Mapbox होस्ट के अलावा अन्य स्टाइल भी निर्दिष्ट कर सकते हैं।