ArcGIS का सेटअप
ArcGIS Maps SDK for Kotlin को MapConductor से उपयोग करने की प्रक्रिया है। Esri का रिपॉज़िटरी जोड़ें और मैनिफ़ेस्ट के माध्यम से API कुंजी पास करें। 2D और 3D दोनों विचार उपयोग किए जा सकते हैं।
शुरू करने से पहले
API कुंजी प्राप्त करें
- ArcGIS Developer खाता बनाएं।
- ArcGIS Developer Dashboard खोलें।
- एप्लिकेशन बनाएं और आवश्यक स्कोप के साथ API कुंजी जारी करें।
Esri का रिपॉज़िटरी जोड़ें
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// Esri public repository for ArcGIS Maps SDK
maven {
url = uri("https://esri.jfrog.io/artifactory/arcgis")
}
}
}Secrets Gradle Plugin डालें
स्रोत प्रबंधन में कुंजी न रखने के लिए एक तंत्र है। प्लगइन secrets.properties पढ़ता है और बिल्ड के समय AndroidManifest.xml के प्लेसहोल्डर में मान डालता है।
plugins {
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}निर्भरताएँ जोड़ें
ArcGIS की ओर भी BOM का उपयोग होता है। Compose के लिए toolkit भी आवश्यक है।
plugins {
// ... other plugins
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}
dependencies {
// ArcGIS Maps SDK
implementation(platform("com.esri:arcgis-maps-kotlin-toolkit-bom:300.1.0"))
implementation("com.esri:arcgis-maps-kotlin:300.1.0")
implementation("com.esri:arcgis-maps-kotlin-toolkit-geoview-compose")
implementation("com.esri:arcgis-maps-kotlin-toolkit-authentication")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-arcgis")
}मैनिफ़ेस्ट और कुंजी कॉन्फ़िगर करें
<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>
<!-- ArcGIS API Key -->
<meta-data
android:name="ARCGIS_API_KEY"
android:value="${ARCGIS_API_KEY}" />
</application>
</manifest>ARCGIS_API_KEY=your_actual_arcgis_api_key_here
लाइसेंस सेट करें (केवल उत्पादन)
बुनियादी नक्शा प्रदर्शन के लिए आवश्यक नहीं है। उत्पादन वितरण के लिए Esri के दस्तावेज़ के अनुसार लाइसेंस सेट करें।
// In your Application class or MainActivity
// ArcGISEnvironment.setLicense("your_license_key_here") // Optional for basic useजाँच
आपको क्या दिखना चाहिए
ArcGIS का नक्शा प्रकट होना, ज़ूम, पैन, और (3D विचार के लिए) टिल्ट काम करना पूरा होना है।
@Composable
fun TestArcGIS(modifier: Modifier = Modifier) {
val mapState = rememberArcGISMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
)
// If the map appears, the setup is correct.
// ArcGISMapView is the 3D scene view; ArcGISMapView2D shares the same state.
ArcGISMapView(modifier = modifier, state = mapState)
}मैप डिज़ाइन
ArcGISDesign Esri के बेसमैप का समर्थन करता है। यहाँ सूचीबद्ध कुछ ही हैं, वास्तव में और भी अधिक स्थिरांक हैं।
समस्या निवारण
नक्शा लोड नहीं होता
- secrets.properties में API कुंजी सही है यह जाँचें।
- Dashboard में कुंजी पर आवश्यक स्कोप संलग्न है यह जाँचें।
लाइसेंस त्रुटि आती है
- उत्पादन वितरण के लिए Esri के दस्तावेज़ के अनुसार लाइसेंस सेट करें।
बिल्ड विफल हो रहा है
- मानचित्र SDK के निर्देशांक और संस्करण संस्करण कैटलॉग के निर्दिष्ट से मेल खाते हैं यह जाँचें।
- रिपॉज़िटरी परिभाषा settings.gradle.kts में है यह जाँचें (repositoriesMode FAIL_ON_PROJECT_REPOS है, तो मॉड्यूल के repositories की अनदेखी की जाती है)।
- यदि आप एक साथ कई मानचित्र SDK रखते हैं, तो क्या कोई निर्भरता संघर्ष है यह जांचने के लिए ./gradlew :app:dependencies चलाएं।
आगे
ArcGISMapView 3D है और ArcGISMapView2D 2D है। दोनों एक ही स्थिति ऑब्जेक्ट साझा करते हैं, इसलिए आप रनटाइम पर स्विच कर सकते हैं।