Open Mobile Maps का सेटअप
MapConductor से Open Mobile Maps (io.openmobilemaps:mapscore) का उपयोग करने के चरण। API की की आवश्यकता नहीं है।
शुरू करने से पहले
निर्भरता जोड़ें
Open Mobile Maps Maven Central पर उपलब्ध है। स्रोत जोड़ने की आवश्यकता नहीं है।
dependencies {
// Open Mobile Maps
implementation("io.openmobilemaps:mapscore:4.0.0")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:compose")
implementation("com.mapconductor:for-openmobilemaps")
}अनुमति जोड़ें
टाइल प्राप्त करने के लिए नेटवर्क की आवश्यकता होती है। यदि आप लोकेशन का उपयोग नहीं करते हैं तो केवल INTERNET पर्याप्त है।
<uses-permission android:name="android.permission.INTERNET" />
टाइल वितरण स्रोत तय करें
चूंकि कोई की नहीं है, आपको टाइल कहां से प्राप्त करनी है, यह खुद तय करना होगा। उपयोग नीति के कारण OpenStreetMap का आधिकारिक टाइल सर्वर ऐप से नियमित उपयोग के लिए उपयुक्त नहीं है। प्रोडक्शन में कृपया स्वयं का वितरण या किसी वाणिज्यिक स्रोत का उपयोग करें।
जाँच
आपको क्या दिखना चाहिए
टोक्यो को केंद्र में रखकर मैप प्रदर्शित करें। टाइल लोड हो जाने पर पूर्ण हो गया।
@Composable
fun TestOpenMobileMaps(modifier: Modifier = Modifier) {
val mapState = rememberOpenMobileMapsMapViewState(
mapDesign = OpenMobileMapsDesign.OpenStreetMap,
cameraPosition = MapCameraPosition(
position = GeoPoint(latitude = 35.6812, longitude = 139.7671),
zoom = 11.0,
),
)
OpenMobileMapsMapView(state = mapState, modifier = modifier.fillMaxSize())
}मैप डिज़ाइन
समस्या निवारण
मैप पूरी तरह सफेद है और एक भी टाइल नहीं आ रही है
- इस प्रदाता में कोई API की नहीं है। पहले यह पुष्टि करें कि निर्दिष्ट शैली URL तक पहुंचा जा सकता है या नहीं।
- पुष्टि करें कि डिवाइस नेटवर्क से कनेक्ट हो सकता है या नहीं।
टाइल वितरण स्रोत से 429 या 403 वापस आ रहा है
- OpenStreetMap के आधिकारिक टाइल सर्वर की एक उपयोग नीति है और ऐप्स से नियमित उपयोग की उम्मीद नहीं की जाती है। प्रोडक्शन में, कृपया अपना खुद का टाइल वितरण या किसी वाणिज्यिक स्रोत का उपयोग करें।
आगे
मार्कर, पॉलीलाइन, पॉलीगन, सर्कल, ग्राउंड इमेज, रेस्टर लेयर और InfoBubble का उपयोग सामान्य API के माध्यम से किया जा सकता है। प्रदाता को बदलने पर भी ऐप का कोड नहीं बदलता है।