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

MapLibre का सेटअप

MapConductor से MapLibre Native का उपयोग करने की प्रक्रिया। API कुंजी की आवश्यकता नहीं है और सबसे छोटा तरीके से शुरू किया जा सकता है। मानचित्र का दृश्य स्टाइल JSON के वितरण स्रोत द्वारा निर्धारित होता है।

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

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

Xcode 15 या उससे अधिक
डिप्लॉय टार्गेट iOS 15.1 या उससे अधिक
STEP 01

Swift Package Manager से जोड़ें

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

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

स्टाइल तय करना

MapLibre में कोई खाता या कुंजी नहीं है। हालाँकि, आपको टाइल का वितरण स्रोत स्वयं तय करना होगा। MapTiler जैसी वाणिज्यिक सेवाओं का उपयोग करते समय, उनकी कुंजी स्टाइल JSON के URL में एम्बेड किए जाने के रूप में होगी। MapConductor टाइल वितरण स्रोत के प्रमाणीकरण में शामिल नहीं है।

ContentView.swiftSwift
// Built-in presets
mapState.mapDesignType = MapLibreDesign.OsmBright
mapState.mapDesignType = MapLibreDesign.OsmBrightJa
mapState.mapDesignType = MapLibreDesign.MapTilerTonerEn
mapState.mapDesignType = MapLibreDesign.DemoTiles
सावधानी
डेमो स्टाइल केवल कार्यक्षमता सत्यापन के लिए हैं। उत्पादन में, स्वयं के या वाणिज्यिक टाइल वितरण का उपयोग करें और प्रदाता द्वारा आवश्यक एट्रिब्यूशन को UI पर प्रदर्शित करें।
STEP 03

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

स्थान जानकारी का उपयोग करते समय, 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()
    }
}

जाँच

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

स्टाइल निर्दिष्ट करके मानचित्र प्रदर्शित करें। यदि टाइल लोड हो जाती हैं और ज़ूम व पैन काम करता है, तो पूर्ण है।

ContentView.swiftSwiftUI
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
Notes
DemoTiles
हल्का डेमो टाइल
OsmBright / OsmBrightEn / OsmBrightJa
OSM Bright। लेबल की भाषा भिन्न
MapTilerTonerEn / MapTilerTonerJa
उच्च कंट्रास्ट वाला Toner स्टाइल
MapTilerBasicEn / MapTilerBasicJa
कम जानकारी वाला Basic स्टाइल

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

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

  • चयनित MapLibreDesign स्टाइल JSON URL तक पहुँचा जा सकता है या नहीं जाँचें।
  • यदि टाइल प्रदाता का उपयोग कर रहे हैं, तो URL में एम्बेड की गई कुंजी मान्य है या नहीं जाँचें।
  • जाँचें कि डिप्लॉय टार्गेट iOS 15.1 या उससे अधिक है या नहीं।

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

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

आगे

MapLibreMapView प्रकट होने पर, अन्य प्रदाताओं की तरह समान सामान्य API का उपयोग करके ओवरले जोड़ा जा सकता है।