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

MapTiler का सेटअप

MapTiler Cloud की शैलियों का उपयोग MapConductor से करने की प्रक्रिया। iOS संस्करण रेंडरर के रूप में MapLibre Native का उपयोग करता है, और आप MapTiler की संदर्भ शैलियों को नाम से चुन सकते हैं।

PACKAGE
ios-for-maptiler
API KEY
आवश्यक
MIN iOS
15.1
VIEW
MapTilerMapView
वही प्रोवाइडर, दूसरे प्लेटफ़ॉर्मAndroidReact

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

Xcode 15 या उससे ऊपर
MapTiler Cloud खाता और API कुंजी
डिप्लॉय टारगेट iOS 15.1 या उससे ऊपर
STEP 01

API कुंजी प्राप्त करें

MapTiler Cloud डैशबोर्ड पर API कुंजी जारी करें। निःशुल्क कोटा उपलब्ध है।

STEP 02

Swift Package Manager से जोड़ें

Xcode के File > Add Package Dependencies से पैकेज URL दर्ज करें। रेंडरर MapLibre Native स्वचालित रूप से निर्भरता के रूप में जुड़ जाएगा।

Package URLSwift Package Manager
https://github.com/MapConductor/ios-for-maptiler
Package.swiftSwift
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"),
        ]
    ),
]
STEP 03

API कुंजी पास करें

प्रत्येक व्यू को पास करें या Info.plist में रखें। जब व्यू की apiKey nil होती है तो Info.plist का उपयोग किया जाता है। यह Android संस्करण के AndroidManifest से MAPTILER_API_KEY पढ़ने जैसा ही है।

ContentView.swiftSwift
// Per view
MapTilerMapView(state: mapViewState, apiKey: "YOUR_MAPTILER_API_KEY")
Info.plistXML
<!-- Fallback, used when the view's apiKey is nil -->
<key>MapTilerAPIKey</key>
<string>YOUR_MAPTILER_API_KEY</string>
सावधानी
API कुंजी को सोर्स में हार्डकोड न करें, इसे xcconfig या पर्यावरण चर से बिल्ड समय इंजेक्ट करें।

जाँच

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

नक्शा और मार्कर दिखाई देने पर पूर्ण हो गया।

ContentView.swiftSwiftUI
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 की संदर्भ शैलियों का समर्थन करता है।

MapTilerDesign
Notes
Streets / StreetsDark / StreetsLight
मानक सड़क मानचित्र और चमक-अंधेरे विविधताएं
Basic / Bright
सूचना सीमित करने वाली शैलियां
Satellite
उपग्रह चित्र
Outdoor / Winter / Topo
आउटडोर, सर्दी, भूभाग
Toner / Dataviz / Backdrop
डेटा रखने के लिए आधार परत के लिए
Ocean / Landscape / Aquarelle / OpenStreetMap
अन्य थीम आधारित शैलियां

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

नक्शा पूरी तरह सफेद

  • जांचें कि व्यू की apiKey या Info.plist की MapTilerAPIKey में मान भरा है या नहीं।
  • MapTiler Cloud में जांचें कि कुंजी मान्य है और निःशुल्क कोटे से अधिक नहीं है।

बिल्ड विफल

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

आगे

iOS संस्करण MapLibre Native द्वारा प्रस्तुत करता है, इसलिए मार्कर, पॉलीगन आदि ओवरले भी सामान्य API के माध्यम से उसी तरह उपयोग किए जा सकते हैं।