दस्तावेज़ / सेटअप / Android / ArcGIS

ArcGIS का सेटअप

ArcGIS Maps SDK for Kotlin को MapConductor से उपयोग करने की प्रक्रिया है। Esri का रिपॉज़िटरी जोड़ें और मैनिफ़ेस्ट के माध्यम से API कुंजी पास करें। 2D और 3D दोनों विचार उपयोग किए जा सकते हैं।

MODULE
com.mapconductor:for-arcgis
API KEY
आवश्यक
VIEW
ArcGISMapView / 2D
TIME
20 मिनट
वही प्रोवाइडर, दूसरे प्लेटफ़ॉर्मiOSReact

शुरू करने से पहले

Android विकास वातावरण (Android Studio)
ArcGIS डेवलपर खाता
ArcGIS की API कुंजी
STEP 01

API कुंजी प्राप्त करें

  1. ArcGIS Developer खाता बनाएं।
  2. ArcGIS Developer Dashboard खोलें।
  3. एप्लिकेशन बनाएं और आवश्यक स्कोप के साथ API कुंजी जारी करें।
STEP 02

Esri का रिपॉज़िटरी जोड़ें

settings.gradle.ktsKotlin
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")
        }
    }
}
STEP 03

Secrets Gradle Plugin डालें

स्रोत प्रबंधन में कुंजी न रखने के लिए एक तंत्र है। प्लगइन secrets.properties पढ़ता है और बिल्ड के समय AndroidManifest.xml के प्लेसहोल्डर में मान डालता है।

(root)/build.gradle.ktsKotlin
plugins {
    id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}
STEP 04

निर्भरताएँ जोड़ें

ArcGIS की ओर भी BOM का उपयोग होता है। Compose के लिए toolkit भी आवश्यक है।

app/build.gradle.ktsKotlin
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")
}
STEP 05

मैनिफ़ेस्ट और कुंजी कॉन्फ़िगर करें

AndroidManifest.xmlXML
<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>
secrets.propertiesProperties
ARCGIS_API_KEY=your_actual_arcgis_api_key_here
सावधानी
secrets.properties को संस्करण नियंत्रण में कमिट न करें। .gitignore में जोड़ने से दुर्घटना होने से बचाव हो सकता है। CI में पर्यावरण चर आदि अन्य सुरक्षित माध्यम से पारित करते हैं।
STEP 06

लाइसेंस सेट करें (केवल उत्पादन)

बुनियादी नक्शा प्रदर्शन के लिए आवश्यक नहीं है। उत्पादन वितरण के लिए Esri के दस्तावेज़ के अनुसार लाइसेंस सेट करें।

MainActivity.ktKotlin
// In your Application class or MainActivity
// ArcGISEnvironment.setLicense("your_license_key_here") // Optional for basic use

जाँच

आपको क्या दिखना चाहिए

ArcGIS का नक्शा प्रकट होना, ज़ूम, पैन, और (3D विचार के लिए) टिल्ट काम करना पूरा होना है।

TestArcGIS.ktJetpack Compose
@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 के बेसमैप का समर्थन करता है। यहाँ सूचीबद्ध कुछ ही हैं, वास्तव में और भी अधिक स्थिरांक हैं।

ArcGISDesign
Notes
Streets
मानक सड़क मानचित्र
Imagery
उपग्रह चित्र
Topographic
स्थलाकृति मानचित्र
OsmStandard
OpenStreetMap मानक शैली
NavigationNight
रात्रि नेविगेशन
DarkGray / LightGray
डेटा रखने के लिए मंद शैली

समस्या निवारण

नक्शा लोड नहीं होता

  • secrets.properties में API कुंजी सही है यह जाँचें।
  • Dashboard में कुंजी पर आवश्यक स्कोप संलग्न है यह जाँचें।

लाइसेंस त्रुटि आती है

  • उत्पादन वितरण के लिए Esri के दस्तावेज़ के अनुसार लाइसेंस सेट करें।

बिल्ड विफल हो रहा है

  • मानचित्र SDK के निर्देशांक और संस्करण संस्करण कैटलॉग के निर्दिष्ट से मेल खाते हैं यह जाँचें।
  • रिपॉज़िटरी परिभाषा settings.gradle.kts में है यह जाँचें (repositoriesMode FAIL_ON_PROJECT_REPOS है, तो मॉड्यूल के repositories की अनदेखी की जाती है)।
  • यदि आप एक साथ कई मानचित्र SDK रखते हैं, तो क्या कोई निर्भरता संघर्ष है यह जांचने के लिए ./gradlew :app:dependencies चलाएं।

आगे

ArcGISMapView 3D है और ArcGISMapView2D 2D है। दोनों एक ही स्थिति ऑब्जेक्ट साझा करते हैं, इसलिए आप रनटाइम पर स्विच कर सकते हैं।