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

HERE का सेटअप

MapConductor से HERE SDK का उपयोग करने की प्रक्रिया। Access Key ID और Secret इन दो से प्रारंभ करें।

PACKAGE
ios-for-here
API KEY
Key ID + Secret
MIN iOS
16.0
VIEW
HereMapView
वही प्रोवाइडर, दूसरे प्लेटफ़ॉर्मAndroidReact

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

Xcode 15 या उससे ऊपर
HERE Platform का खाता
HERE SDK की एक्सेस कुंजी ID और गुप्त कुंजी
डिप्लॉय लक्ष्य iOS 16.0 या उससे ऊपर
STEP 01

प्रमाणीकरण विवरण प्राप्त करें

  1. HERE Platform पर जाएँ।
  2. प्रोजेक्ट बनाएँ या कोई मौजूदा चुनें।
  3. HERE SDK के लिए एक्सेस कुंजी बनाएँ।
  4. एक्सेस कुंजी ID और गुप्त कुंजी कॉपी करें।
STEP 02

Swift Package Manager के साथ जोड़ें

Xcode के File > Add Package Dependencies से पैकेज URL दर्ज करें। नेटिव SDK स्वचालित रूप से निर्भरता के रूप में आता है, इसलिए इसे अलग से जोड़ने की आवश्यकता नहीं है।

Package URLSwift Package Manager
https://github.com/MapConductor/ios-for-here
Package.swiftSwift
dependencies: [
    .package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
    .package(url: "https://github.com/MapConductor/ios-for-here", from: "1.0.0"),
],
targets: [
    .target(
        name: "YourApp",
        dependencies: [
            .product(name: "MapConductorCore", package: "ios-sdk-core"),
            .product(name: "MapConductorForHERE", package: "ios-for-here"),
        ]
    ),
]
STEP 03

SDK प्रारंभ करें

मानचित्र दृश्य बनने से पहले `initializeHERE(accessKeyId:accessKeySecret:)` को केवल एक बार कॉल करें। यह फ़ंक्शन `throw` करता है, इसलिए विफलता को दबाए नहीं।

MyApp.swiftSwift
import SwiftUI
import MapConductorForHERE

@main
struct MyApp: App {
    init() {
        do {
            try initializeHERE(
                accessKeyId: "YOUR_HERE_ACCESS_KEY_ID",
                accessKeySecret: "YOUR_HERE_ACCESS_KEY_SECRET"
            )
        } catch {
            assertionFailure("Failed to initialize HERE SDK: \(error)")
        }
    }

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
ContentView.swiftSwift
// Alternative: call it from the view's sdkInitialize closure
HereMapView(state: mapState, sdkInitialize: {
    try? initializeHERE(
        accessKeyId: "YOUR_HERE_ACCESS_KEY_ID",
        accessKeySecret: "YOUR_HERE_ACCESS_KEY_SECRET"
    )
})
STEP 04

स्थान अनुमतियाँ जोड़ें (यदि आवश्यक हो)

HERE SDK के साथ स्थान सेवाओं का उपयोग करते समय `Info.plist` में उद्देश्य लिखें।

Info.plistXML
<key>NSLocationWhenInUseUsageDescription</key>
<string>We need your location to display on the map</string>
LocationManager.swiftSwift
import CoreLocation

final class LocationManager: NSObject, ObservableObject, CLLocationManagerDelegate {
    private let manager = CLLocationManager()

    override init() {
        super.init()
        manager.delegate = self
    }

    func requestPermission() {
        manager.requestWhenInUseAuthorization()
    }
}

जाँच

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

HERE का मानचित्र प्रदर्शित हो और ज़ूम व पैन काम करे तो पूर्ण है।

ContentView.swiftSwiftUI
import SwiftUI
import MapConductorCore
import MapConductorForHERE

struct ContentView: View {
    @StateObject var mapState = HereMapViewState(
        mapDesignType: HereMapDesign.NormalDay,
        cameraPosition: MapCameraPosition(
            position: GeoPoint(latitude: 35.6812, longitude: 139.7671),
            zoom: 12.0
        )
    )

    var body: some View {
        HereMapView(state: mapState)
            .ignoresSafeArea()
    }
}

मैप डिज़ाइन

HereMapDesign HERE के मानचित्र योजनाओं का समर्थन करता है।

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

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

मानचित्र पूरी तरह से सफेद है

  • जाँचें कि एक्सेस कुंजी ID और गुप्त कुंजी सही हैं।
  • जाँचें कि मानचित्र दृश्य से पहले `initializeHERE` को कॉल किया गया है।
  • प्रारंभीकरण के `throw` को पकड़ें और त्रुटि विवरण को लॉग में आउटपुट करें।

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

  • बिल्ड फ़ोल्डर साफ़ करें (Cmd+Shift+K)।
  • `~/Library/Developer/Xcode/DerivedData` को हटाएँ और पुनः बिल्ड करें।
  • Swift Package Manager की निर्भरता अपडेट करें। CocoaPods के साथ संयोजन से बचें।

आगे

मार्कर, पॉलीलाइन, पॉलीगॉन, वृत्त, ग्राउंड इमेज, रास्टर लेयर, `InfoBubble` सभी एक सामान्य API के साथ उपयोग करने योग्य हैं। पॉलीगॉन के छेद के लिए HERE पर नेटिव समर्थन नहीं होने के कारण, मास्क टाइल उत्पन्न करके रेंडर किया जाता है। कॉलिंग साइड कोड अन्य प्रदाताओं के समान है।