Google Maps का सेटअप
MapConductor से Google Maps SDK for Android का उपयोग करने की प्रक्रिया। API कुंजी प्राप्त करने से लेकर, Secrets Gradle Plugin के साथ कुंजी को इंजेक्ट करने और GoogleMapView प्रदर्शित होने तक इसमें शामिल है।
शुरू करने से पहले
API कुंजी प्राप्त करें
- Google Cloud Console पर जाएं।
- एक नया प्रोजेक्ट बनाएं या कोई मौजूदा चुनें।
- Maps SDK for Android को सक्षम करें।
- "प्रमाणीकरण जानकारी" से API कुंजी बनाएं।
- कुंजी को ऐप के पैकेज नाम और SHA-1 प्रमाणपत्र फिंगरप्रिंट तक सीमित करें।
Secrets Gradle Plugin जोड़ें
स्रोत प्रबंधन में कुंजी न रखने के लिए एक तंत्र है। प्लगइन secrets.properties को पढ़ता है और बिल्ड के समय AndroidManifest.xml के प्लेसहोल्डर में मान डालता है।
plugins {
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}निर्भरता जोड़ें
Google Maps SDK और MapConductor मॉड्यूल को ऐप में जोड़ें और Secrets Gradle Plugin लागू करें। MapConductor का संस्करण BOM तय करता है।
plugins {
// ... other plugins
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}
dependencies {
// Google Maps SDK
implementation("com.google.android.gms:play-services-maps:20.0.0")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-googlemaps")
// Optional: compose / icons / heatmap / marker-clustering / geojson / kml
}मैनिफेस्ट और कुंजी कॉन्फ़िगर करें
मैनिफेस्ट में केवल प्लेसहोल्डर लिखें और वास्तविक मान secrets.properties में रखें। बिल्ड के समय प्लगइन इसे बदल देगा।
<manifest>
<!-- Add location permissions -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application>
<!-- Google Maps API Key -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${GOOGLE_MAPS_API_KEY}" />
</application>
</manifest>GOOGLE_MAPS_API_KEY=your_actual_api_key
ProGuard / R8 कॉन्फ़िगर करें (यदि लागू हो)
यदि अस्पष्टीकरण सक्षम है, तो Play Services Maps की कक्षाओं को रखें।
# Google Play Services
-keep class com.google.android.gms.maps.** { *; }
-keep interface com.google.android.gms.maps.** { *; }
-dontwarn com.google.android.gms.**जाँच
आपको क्या दिखना चाहिए
इस स्क्रीन को बिल्ड और चलाएं, और यदि मानचित्र प्रकट होता है और ज़ूम और पैन काम करता है, तो सेटअप पूरा हो गया है।
@Composable
fun TestGoogleMaps(modifier: Modifier = Modifier) {
val mapState = rememberGoogleMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
)
// If the map appears, the setup is correct.
GoogleMapView(modifier = modifier, state = mapState)
}मैप डिज़ाइन
GoogleMapDesign Google के मानचित्र प्रकारों की प्रति है।
समस्या निवारण
नक्शा प्रदर्शित नहीं हो रहा (ग्रे स्क्रीन)
- secrets.properties में API कुंजी सही है या नहीं जाँचें।
- Google Cloud Console में Maps SDK for Android सक्षम है या नहीं जाँचें।
- कुंजी प्रतिबंध वास्तविक पैकेज नाम और SHA-1 से मेल खाते हैं या नहीं जाँचें।
लॉग में API कुंजी त्रुटि आ रही है
- कुंजी मान और समाप्ति तिथि की जाँच करें।
- Console की प्रतिबंध सेटिंग्स की समीक्षा करें।
बिल्ड विफल हो रहा है
- नक्शा SDK के निर्देशांक और संस्करण संस्करण कैटलॉग के विनिर्देश से मेल खाते हैं या नहीं जाँचें।
- settings.gradle.kts में रिपॉजिटरी परिभाषा है या नहीं जाँचें (repositoriesMode FAIL_ON_PROJECT_REPOS है, तो मॉड्यूल के repositories को नजरअंदाज किया जाता है)।
- यदि आपने एक साथ कई नक्शा SDK जोड़े हैं, तो निर्भरता संघर्ष है या नहीं जाँचने के लिए ./gradlew :app:dependencies चलाएँ।
आगे
GoogleMapView दिखाई देने पर, Marker, Polyline, Circle आदि ओवरले को सामान्य API से लिखा जा सकता है। प्रदाता बदलने पर भी, वह कोड नहीं बदलता है।