MapLibre का सेटअप
MapConductor से MapLibre Native का उपयोग करने की प्रक्रिया। API कुंजी की आवश्यकता नहीं है और सबसे छोटा तरीके से शुरू किया जा सकता है। मानचित्र का दृश्य स्टाइल JSON के वितरण स्रोत द्वारा निर्धारित होता है।
शुरू करने से पहले
Swift Package Manager से जोड़ें
Xcode के File > Add Package Dependencies से पैकेज URL दर्ज करें। MapLibre Native SDK स्वचालित रूप से निर्भरता के रूप में जुड़ जाएगा।
https://github.com/MapConductor/ios-for-maplibre
dependencies: [
.package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
.package(url: "https://github.com/MapConductor/ios-for-maplibre", from: "1.0.0"),
],
targets: [
.target(
name: "YourApp",
dependencies: [
.product(name: "MapConductorCore", package: "ios-sdk-core"),
.product(name: "MapConductorForMapLibre", package: "ios-for-maplibre"),
]
),
]स्टाइल तय करना
MapLibre में कोई खाता या कुंजी नहीं है। हालाँकि, आपको टाइल का वितरण स्रोत स्वयं तय करना होगा। MapTiler जैसी वाणिज्यिक सेवाओं का उपयोग करते समय, उनकी कुंजी स्टाइल JSON के URL में एम्बेड किए जाने के रूप में होगी। MapConductor टाइल वितरण स्रोत के प्रमाणीकरण में शामिल नहीं है।
// Built-in presets mapState.mapDesignType = MapLibreDesign.OsmBright mapState.mapDesignType = MapLibreDesign.OsmBrightJa mapState.mapDesignType = MapLibreDesign.MapTilerTonerEn mapState.mapDesignType = MapLibreDesign.DemoTiles
स्थान अनुमतियाँ जोड़ें (यदि आवश्यक हो)
स्थान जानकारी का उपयोग करते समय, 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()
}
}जाँच
आपको क्या दिखना चाहिए
स्टाइल निर्दिष्ट करके मानचित्र प्रदर्शित करें। यदि टाइल लोड हो जाती हैं और ज़ूम व पैन काम करता है, तो पूर्ण है।
import SwiftUI
import MapConductorCore
import MapConductorForMapLibre
struct ContentView: View {
@StateObject var mapState = MapLibreViewState(
mapDesignType: MapLibreDesign.OsmBright,
cameraPosition: MapCameraPosition(
position: GeoPoint(latitude: 35.6812, longitude: 139.7671),
zoom: 12.0
)
)
var body: some View {
MapLibreMapView(state: mapState)
.ignoresSafeArea()
}
}मैप डिज़ाइन
MapLibreDesign स्टाइल JSON के URL को लपेटने वाला एक प्रकार है। स्वयं के स्टाइल का उपयोग करते समय समान प्रकार को सीधे बनाएं।
समस्या निवारण
मानचित्र पूरी तरह सफेद है
- चयनित MapLibreDesign स्टाइल JSON URL तक पहुँचा जा सकता है या नहीं जाँचें।
- यदि टाइल प्रदाता का उपयोग कर रहे हैं, तो URL में एम्बेड की गई कुंजी मान्य है या नहीं जाँचें।
- जाँचें कि डिप्लॉय टार्गेट iOS 15.1 या उससे अधिक है या नहीं।
बिल्ड विफल हो रहा है
- बिल्ड फ़ोल्डर साफ़ करें (Cmd+Shift+K)।
- ~/Library/Developer/Xcode/DerivedData हटाएं और पुनः बिल्ड करें।
- Swift Package Manager की निर्भरताएँ अपडेट करें। CocoaPods के साथ समवर्ती उपयोग से बचें।
आगे
MapLibreMapView प्रकट होने पर, अन्य प्रदाताओं की तरह समान सामान्य API का उपयोग करके ओवरले जोड़ा जा सकता है।