TomTom का सेटअप
MapConductor से TomTom Orbis Maps Display SDK का उपयोग करने की प्रक्रिया। विशेष Maven रिपॉजिटरी जोड़ें और API कुंजी को मैनिफेस्ट में पास करें।
शुरू करने से पहले
API कुंजी प्राप्त करें
TomTom Developer Portal पर Orbis Maps के लिए API कुंजी जारी करें।
TomTom की रिपॉजिटरी जोड़ें
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// TomTom Orbis Maps SDK repository
maven {
url = uri("https://repositories.tomtom.com/artifactory/maven")
}
}
}निर्भरता जोड़ें
dependencies {
// TomTom Orbis Maps Display SDK
implementation("com.tomtom.sdk.maps:map-display-standard:2.4.2")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-tomtom")
}मैनिफेस्ट में कुंजी लिखें
<manifest>
<uses-permission android:name="android.permission.INTERNET" />
<application>
<meta-data
android:name="TOMTOM_API_KEY"
android:value="${TOMTOM_API_KEY}" />
</application>
</manifest>थीम की पुष्टि करें
TomTom के UI ओवरले (लोगो, कंपास आदि) AppCompat श्रेणी के थीम पर आधारित हैं। अन्य थीम में रेंडरिंग काम करेगी, लेकिन चेतावनी लॉग आएगा। Theme.AppCompat या Theme.MaterialComponents श्रेणी की अनुशंसा की जाती है।
जाँच
आपको क्या दिखना चाहिए
नक्शा और मार्कर दिखाई देने पर पूर्ण हो गया।
@Composable
fun TestTomTom(modifier: Modifier = Modifier) {
val mapState = rememberTomTomMapViewState(
mapDesign = TomTomMapDesign.Standard,
cameraPosition = MapCameraPosition(
position = GeoPoint(52.3676, 4.9041),
zoom = 11.0,
),
)
TomTomMapView(state = mapState, modifier = modifier) {
Marker(
MarkerState(
position = GeoPoint(52.3676, 4.9041),
icon = DefaultMarkerIcon().copy(label = "Amsterdam"),
),
)
}
}मैप डिज़ाइन
TomTomMapDesign Orbis Maps के मानक शैली का समर्थन करता है।
समस्या निवारण
नक्शे की रेंडरिंग स्थिति बिगड़ गई है
- MapConductor ने MapOptions(renderToTexture = true) निर्दिष्ट किया है। डिफ़ॉल्ट SurfaceView रेंडरिंग Compose के SubcomposeLayout के साथ संघर्ष करती है। यदि आप स्वयं MapOptions बना रहे हैं, तो वही निर्दिष्ट करना आवश्यक है।
बिल्ड विफल हो रहा है
- नक्शे SDK के निर्देशांक और संस्करण वर्जन कैटलॉग के निर्दिष्ट से मेल खाते हैं या नहीं, इसकी पुष्टि करें।
- settings.gradle.kts में रिपॉजिटरी परिभाषा है या नहीं इसकी पुष्टि करें (repositoriesMode FAIL_ON_PROJECT_REPOS है, तो मॉड्यूल की repositories को अनदेखा किया जाता है)।
- यदि आप कई नक्शे SDK एक साथ उपयोग कर रहे हैं, तो निर्भरता संघर्ष की जांच के लिए ./gradlew :app:dependencies का उपयोग करें।
आगे
मार्कर, पॉलीलाइन, पॉलीगॉन, वृत्त, ग्राउंड इमेज, रास्टर लेयर, InfoBubble सभी सामान्य API के साथ उपयोग किए जा सकते हैं। TomTom के पास मार्कर का नेटिव ड्रैग नहीं है, इसलिए MapConductor MotionEvent को सीधे संसाधित करके ड्रैग लागू करता है। draggable मार्कर वैसे ही काम करेंगे।