MapLibre का सेटअप
MapConductor से MapLibre Native Android का उपयोग करने की प्रक्रिया। MapLibre में स्वयं कोई API कुंजी नहीं है, और मानचित्र का रूप स्टाइल JSON के वितरण स्रोत द्वारा निर्धारित होता है। यह सबसे छोटे चरणों में चलने वाला प्रदाता है।
शुरू करने से पहले
टाइल का स्रोत तय करें
MapLibre एक रेंडरर है, टाइल प्रदाता नहीं। केवल कार्यक्षमता जाँच के लिए MapLibreDesign का डेमो स्टाइल पर्याप्त है, लेकिन उत्पादन में स्पष्ट रूप से वितरण स्रोत चुनने की आवश्यकता होती है।
- मुफ्त/समुदाय: OpenStreetMap आधारित टाइल, Protomaps (स्वयं होस्ट किया जा सकता है)
- वाणिज्यिक: MapTiler Cloud, Stadia Maps (दोनों में मुफ्त सीमा उपलब्ध है)
- स्वयं होस्ट किया गया: tileserver-gl आदि के साथ स्वयं वितरण
निर्भरता जोड़ें
MapLibre SDK Maven Central से प्राप्त किया जा सकता है, इसलिए अतिरिक्त रिपॉजिटरी सेटिंग की आवश्यकता नहीं है।
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
}
}dependencies {
// MapLibre Native Android SDK
implementation("org.maplibre.gl:android-sdk:13.4.1")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-maplibre")
}मेनिफेस्ट में अनुमतियाँ जोड़ें
कुंजी इंजेक्शन नहीं है, इसलिए केवल अनुमतियों की आवश्यकता है।
<manifest>
<!-- Add internet permission for tile loading -->
<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>
<!-- no key to inject for MapLibre -->
</application>
</manifest>जाँच
आपको क्या दिखना चाहिए
स्टाइल निर्दिष्ट करके मानचित्र प्रदर्शित करें। टाइल लोड हो जाएं, ज़ूम, पैन, रोटेशन काम करे, तो पूर्ण है।
@Composable
fun TestMapLibre(modifier: Modifier = Modifier) {
val mapState = rememberMapLibreMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
mapDesign = MapLibreDesign.OpenMapTiles,
)
// If the map appears, the setup is correct.
MapLibreMapView(modifier = modifier, state = mapState)
}मैप डिज़ाइन
MapLibreDesign स्टाइल JSON के URL को लपेटने वाला एक स्थिरांक है। अपने स्टाइल का उपयोग करते समय भी समान प्रकार बनाकर पास करें।
समस्या निवारण
मानचित्र पूरी तरह सफेद है
- यह जाँचता है कि क्या स्टाइल URL तक पहुँचा जा सकता है और क्या JSON मान्य है।
- यह जाँचता है कि INTERNET अनुमति संलग्न है या नहीं।
- Logcat में नेटवर्क या पार्सिंग त्रुटियों की जाँच करें।
केवल टाइल लोड नहीं हो रहे हैं
- टाइल सर्वर का URL जाँचें।
- यह जाँचें कि क्या आप मुफ्त सेवा की दर सीमा में नहीं हैं।
- यदि आप वाणिज्यिक प्रदाता का उपयोग कर रहे हैं, तो जाँचें कि स्टाइल URL में डाली गई कुंजी मान्य है या नहीं।
बिल्ड विफल हो रहा है
- जाँचें कि मैप SDK के निर्देशांक और संस्करण संस्करण कैटलॉग की विनिर्देश के साथ मेल खाते हैं या नहीं।
- जाँचें कि रिपॉजिटरी परिभाषा settings.gradle.kts में मौजूद है या नहीं (repositoriesMode FAIL_ON_PROJECT_REPOS होने पर, मॉड्यूल द्वारा repositories को अनदेखा किया जाता है).
- यदि एक साथ कई मैप SDK हैं, तो निर्भरता संघर्ष की जाँच के लिए ./gradlew :app:dependencies चलाएँ।
आगे
वेक्टर टाइल रास्टर से हल्के होते हैं और रेंडरिंग भी तेज़ होता है। यदि ऑफ़लाइन उपयोग आवश्यक है तो टाइल कैशिंग पर विचार करें।