MapTiler का सेटअप
MapTiler Cloud की शैलियों का उपयोग MapConductor से करने की प्रक्रिया। iOS संस्करण रेंडरर के रूप में MapLibre Native का उपयोग करता है, और आप MapTiler की संदर्भ शैलियों को नाम से चुन सकते हैं।
शुरू करने से पहले
API कुंजी प्राप्त करें
MapTiler Cloud डैशबोर्ड पर API कुंजी जारी करें। निःशुल्क कोटा उपलब्ध है।
Swift Package Manager से जोड़ें
Xcode के File > Add Package Dependencies से पैकेज URL दर्ज करें। रेंडरर MapLibre Native स्वचालित रूप से निर्भरता के रूप में जुड़ जाएगा।
https://github.com/MapConductor/ios-for-maptiler
dependencies: [
.package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
.package(url: "https://github.com/MapConductor/ios-for-maptiler", from: "1.0.0"),
],
targets: [
.target(
name: "YourApp",
dependencies: [
.product(name: "MapConductorCore", package: "ios-sdk-core"),
.product(name: "MapConductorForMapTiler", package: "ios-for-maptiler"),
]
),
]API कुंजी पास करें
प्रत्येक व्यू को पास करें या Info.plist में रखें। जब व्यू की apiKey nil होती है तो Info.plist का उपयोग किया जाता है। यह Android संस्करण के AndroidManifest से MAPTILER_API_KEY पढ़ने जैसा ही है।
// Per view MapTilerMapView(state: mapViewState, apiKey: "YOUR_MAPTILER_API_KEY")
<!-- Fallback, used when the view's apiKey is nil --> <key>MapTilerAPIKey</key> <string>YOUR_MAPTILER_API_KEY</string>
जाँच
आपको क्या दिखना चाहिए
नक्शा और मार्कर दिखाई देने पर पूर्ण हो गया।
import SwiftUI
import MapConductorCore
import MapConductorForMapTiler
struct ContentView: View {
@StateObject private var mapViewState = MapTilerViewState(
cameraPosition: MapCameraPosition(
position: GeoPoint(latitude: 35.6762, longitude: 139.6503),
zoom: 11
)
)
var body: some View {
MapTilerMapView(state: mapViewState) {
Marker(
position: GeoPoint(latitude: 35.6762, longitude: 139.6503),
icon: DefaultMarkerIcon(label: "Tokyo")
)
}
}
}मैप डिज़ाइन
MapTilerDesign MapTiler Cloud की संदर्भ शैलियों का समर्थन करता है।
समस्या निवारण
नक्शा पूरी तरह सफेद
- जांचें कि व्यू की apiKey या Info.plist की MapTilerAPIKey में मान भरा है या नहीं।
- MapTiler Cloud में जांचें कि कुंजी मान्य है और निःशुल्क कोटे से अधिक नहीं है।
बिल्ड विफल
- बिल्ड फ़ोल्डर साफ़ करें (Cmd+Shift+K)।
- ~/Library/Developer/Xcode/DerivedData हटाएं और पुनर्निर्माण करें।
- Swift Package Manager निर्भरताओं को अपडेट करें। CocoaPods के साथ उपयोग से बचें।
आगे
iOS संस्करण MapLibre Native द्वारा प्रस्तुत करता है, इसलिए मार्कर, पॉलीगन आदि ओवरले भी सामान्य API के माध्यम से उसी तरह उपयोग किए जा सकते हैं।