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

HERE का सेटअप

MapConductor से HERE SDK (Explore Edition माना गया है) का उपयोग करने की प्रक्रिया। HERE SDK Maven के बजाय AAR के रूप में वितरित होता है, इसलिए प्रोजेक्ट में फ़ाइल रखने का चरण शामिल है।

MODULE
com.mapconductor:for-here
API KEY
Key ID + Secret
VIEW
HereMapView
TIME
25 मिनट
वही प्रोवाइडर, दूसरे प्लेटफ़ॉर्मiOSReact

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

Android विकास वातावरण (Android Studio)
HERE डेवलपर खाता
Access Key ID और Access Key Secret
HERE SDK Explore Android की AAR फ़ाइल (4.26 श्रृंखला)
STEP 01

प्रमाणीकरण विवरण और AAR तैयार करें

  1. HERE Developer खाता बनाएं।
  2. HERE Developer Portal पर प्रोजेक्ट बनाएं।
  3. Access Key ID और Secret जनरेट करें।
  4. HERE SDK Explore Android का AAR डाउनलोड करें। 4.26 श्रृंखला अगर है तो काम करेगा।
STEP 02

प्रोजेक्ट में AAR रखें

AAR को प्रोजेक्ट के libs/ में रखें। फ़ाइल नाम को Gradle से संदर्भित नाम के साथ पूरी तरह से मेल खाना चाहिए।

project layouttext
<project root>/
└── libs/
    └── heresdk-explore-android-4.27.2.0.309975.aar
फ़ाइल नाम में शामिल बिल्ड नंबर एक संदर्भ मूल्य है। MapConductor का विकास और सत्यापन इस संस्करण पर किया गया है, लेकिन इसे यहां तय करने की आवश्यकता नहीं है। MapConductor को प्रत्येक मानचित्र SDK की विशिष्ट कार्यक्षमता पर यथासंभव कम निर्भर होने के लिए बनाया गया है, इसलिए संस्करण थोड़ा अलग होने पर भी यह काम करेगा। कृपया वास्तव में डाउनलोड की गई AAR के फ़ाइल नाम के अनुसार पढ़ें।
सावधानी
HERE SDK का AAR पुनर्वितरण के लिए प्रतिबंधित है। कृपया इसे सार्वजनिक रिपॉजिटरी में कमिट न करें (.gitignore में libs/heresdk-*.aar जोड़ें)।
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

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

AAR को लोकल फ़ाइल के रूप में संदर्भित करें। फ़ाइल नाम को वास्तव में रखी गई चीज़ के अनुसार समायोजित करें।

app/build.gradle.ktsKotlin
plugins {
    // ... other plugins
    id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}

dependencies {
    // HERE SDK (local AAR).
    // This build number is only the one MapConductor is developed against —
    // use the file name of the AAR you downloaded.
    implementation(
        files("${rootProject.projectDir}/libs/heresdk-explore-android-4.27.2.0.309975.aar")
    )

    // MapConductor BOM pins every module below
    implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))

    implementation("com.mapconductor:core")
    implementation("com.mapconductor:for-here")
}
STEP 05

मैनिफेस्ट और प्रमाणीकरण विवरण सेट करें

HERE ID और Secret दोनों का उपयोग करता है। दोनों को प्लेसहोल्डर के माध्यम से पास करें।

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>
        <!-- HERE Access Key ID -->
        <meta-data
            android:name="HERE_ACCESS_KEY_ID"
            android:value="${HERE_ACCESS_KEY_ID}" />

        <!-- HERE Access Key Secret -->
        <meta-data
            android:name="HERE_ACCESS_KEY_SECRET"
            android:value="${HERE_ACCESS_KEY_SECRET}" />
    </application>
</manifest>
secrets.propertiesProperties
HERE_ACCESS_KEY_ID=your_actual_here_access_key_id
HERE_ACCESS_KEY_SECRET=your_actual_here_access_key_secret
सावधानी
secrets.properties को वर्ज़न नियंत्रण में कमिट न करें। .gitignore में जोड़ने से दुर्घटना से बचा जा सकता है। CI में इसे पर्यावरण चर आदि अन्य सुरक्षित माध्यम से पास किया जाता है।

जाँच

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

HERE का मानचित्र दिखाई देने पर पूर्ण हो गया।

TestHere.ktJetpack Compose
@Composable
fun TestHere(modifier: Modifier = Modifier) {
    val mapState = rememberHereMapViewState(
        cameraPosition = MapCameraPosition(
            position = GeoPoint(35.6762, 139.6503),
            zoom = 12.0,
        ),
    )

    // If the map appears, the setup is correct.
    HereMapView(modifier = modifier, state = mapState)
}

मैप डिज़ाइन

HereMapDesign HERE के मानचित्र योजना के अनुरूप होता है। दिन/रात और रसद आदि के लिए, उपयोग-विशिष्ट शैलियाँ उपलब्ध हैं।

HereMapDesign
Notes
NormalDay / NormalNight
मानक शैली का दिन / रात
Satellite
उपग्रह चित्र
HybridDay / HybridNight
उपग्रह चित्र + सड़कें और लेबल
LiteDay / LiteNight
कम जानकारी वाली हल्की शैली
LogisticsDay
लॉजिस्टिक्स के लिए
RoadNetworkDay
सड़क नेटवर्क पर जोर

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

मानचित्र लोड नहीं हो रहा है

  • जांचें कि secrets.properties में Access Key ID और Secret सही हैं या नहीं।
  • जांचें कि कुंजी मान्य (अक्षम नहीं) है या नहीं।

AAR नहीं मिला कहा जाता है

  • जांचें कि AAR libs/ में है या नहीं।
  • जांचें कि फ़ाइल नाम build.gradle.kts के विवरण से पूरी तरह मेल खाता है या नहीं (संस्करण संख्या सहित)।

बिल्ड पास नहीं हो रहा है

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

आगे

HereMapView आने पर, आप अन्य प्रदाताओं की तरह समान साझा API के साथ ओवरले ओवरलैप कर सकते हैं।