HERE का सेटअप
MapConductor से HERE SDK का उपयोग करने की प्रक्रिया। Access Key ID और Secret इन दो से प्रारंभ करें।
शुरू करने से पहले
प्रमाणीकरण विवरण प्राप्त करें
- HERE Platform पर जाएँ।
- प्रोजेक्ट बनाएँ या कोई मौजूदा चुनें।
- HERE SDK के लिए एक्सेस कुंजी बनाएँ।
- एक्सेस कुंजी ID और गुप्त कुंजी कॉपी करें।
Swift Package Manager के साथ जोड़ें
Xcode के File > Add Package Dependencies से पैकेज URL दर्ज करें। नेटिव SDK स्वचालित रूप से निर्भरता के रूप में आता है, इसलिए इसे अलग से जोड़ने की आवश्यकता नहीं है।
https://github.com/MapConductor/ios-for-here
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"),
]
),
]SDK प्रारंभ करें
मानचित्र दृश्य बनने से पहले `initializeHERE(accessKeyId:accessKeySecret:)` को केवल एक बार कॉल करें। यह फ़ंक्शन `throw` करता है, इसलिए विफलता को दबाए नहीं।
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()
}
}
}// 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"
)
})स्थान अनुमतियाँ जोड़ें (यदि आवश्यक हो)
HERE SDK के साथ स्थान सेवाओं का उपयोग करते समय `Info.plist` में उद्देश्य लिखें।
<key>NSLocationWhenInUseUsageDescription</key> <string>We need your location to display on the map</string>
import CoreLocation
final class LocationManager: NSObject, ObservableObject, CLLocationManagerDelegate {
private let manager = CLLocationManager()
override init() {
super.init()
manager.delegate = self
}
func requestPermission() {
manager.requestWhenInUseAuthorization()
}
}जाँच
आपको क्या दिखना चाहिए
HERE का मानचित्र प्रदर्शित हो और ज़ूम व पैन काम करे तो पूर्ण है।
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 के मानचित्र योजनाओं का समर्थन करता है।
समस्या निवारण
मानचित्र पूरी तरह से सफेद है
- जाँचें कि एक्सेस कुंजी ID और गुप्त कुंजी सही हैं।
- जाँचें कि मानचित्र दृश्य से पहले `initializeHERE` को कॉल किया गया है।
- प्रारंभीकरण के `throw` को पकड़ें और त्रुटि विवरण को लॉग में आउटपुट करें।
बिल्ड विफल हो रहा है
- बिल्ड फ़ोल्डर साफ़ करें (Cmd+Shift+K)।
- `~/Library/Developer/Xcode/DerivedData` को हटाएँ और पुनः बिल्ड करें।
- Swift Package Manager की निर्भरता अपडेट करें। CocoaPods के साथ संयोजन से बचें।
आगे
मार्कर, पॉलीलाइन, पॉलीगॉन, वृत्त, ग्राउंड इमेज, रास्टर लेयर, `InfoBubble` सभी एक सामान्य API के साथ उपयोग करने योग्य हैं। पॉलीगॉन के छेद के लिए HERE पर नेटिव समर्थन नहीं होने के कारण, मास्क टाइल उत्पन्न करके रेंडर किया जाता है। कॉलिंग साइड कोड अन्य प्रदाताओं के समान है।