เอกสาร / การตั้งค่า / iOS / Apple MapKit
การตั้งค่า Apple MapKit
ขั้นตอนการใช้ Apple MapKit จาก MapConductor ไม่ต้องการการพึ่งพาภายนอก คีย์ API หรือการเริ่มต้น SDK จึงเป็นผู้ให้บริการ iOS ที่ต้องการการเตรียมการน้อยที่สุด
PACKAGE
ios-for-mapkit
API KEY
ไม่จำเป็น
MIN iOS
15.1
VIEW
MapKitMapView
ผู้ให้บริการเดียวกัน แพลตฟอร์มอื่นReact
ก่อนเริ่ม
Xcode 15 ขึ้นไป
เป้าหมายการนำไปใช้ iOS 15.1 ขึ้นไป
STEP 01
เพิ่มด้วย Swift Package Manager
MapKit ถูกรวมอยู่ใน iOS ดังนั้นจึงไม่ต้องการบัญชี คีย์ หรือการเริ่มต้นเพิ่มเติม เพียงเพิ่มแพ็กเกจ
Package URLSwift Package Manager
https://github.com/MapConductor/ios-for-mapkit
Package.swiftSwift
dependencies: [
.package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
.package(url: "https://github.com/MapConductor/ios-for-mapkit", from: "1.0.0"),
],
targets: [
.target(
name: "YourApp",
dependencies: [
.product(name: "MapConductorCore", package: "ios-sdk-core"),
.product(name: "MapConductorForMapKit", package: "ios-for-mapkit"),
]
),
]STEP 02
เพิ่มสิทธิ์ตำแหน่ง (หากจำเป็น)
หากใช้ข้อมูลตำแหน่ง ให้ระบุวัตถุประสงค์ใน 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 MapConductorForMapKit
struct ContentView: View {
@StateObject var mapState = MapKitViewState(
mapDesignType: MapKitMapDesign.Standard,
cameraPosition: MapCameraPosition(
position: GeoPoint(latitude: 35.6812, longitude: 139.7671),
zoom: 12.0
)
)
var body: some View {
MapKitMapView(state: mapState)
.ignoresSafeArea()
}
}ดีไซน์แผนที่
MapKitMapDesign รองรับ MKMapType
MapKitMapDesign
Notes
Standard
แผนที่ถนนมาตรฐาน
Satellite
ภาพดาวเทียม
Hybrid
ภาพดาวเทียม + ถนนและป้ายกำกับ
MutedStandard
สไตล์สีอ่อนสำหรับพื้นฐานข้อมูล
การแก้ปัญหา
แผนที่ไม่ปรากฏ
- ตรวจสอบว่าเป้าหมายการนำไปใช้เป็น iOS 15.1 ขึ้นไปหรือไม่
- ตรวจสอบว่า MapConductorForMapKit ถูกเชื่อมโยงกับเป้าหมายหรือไม่
การบิลด์ล้มเหลว
- ล้างโฟลเดอร์บิลด์ (Cmd+Shift+K)
- ลบ ~/Library/Developer/Xcode/DerivedData แล้วบิลด์ใหม่
- อัปเดตการพึ่งพาของ Swift Package Manager หลีกเลี่ยงการใช้ร่วมกับ CocoaPods
ถัดไป
หากมีเป้าหมายเฉพาะแพลตฟอร์ม Apple เนื่องจากไม่ต้องการ SDK หรือคีย์เพิ่มเติม ขนาดการกระจายจึงเล็กลง บนเว็บยังสามารถใช้ผู้ให้บริการ MapKit JS ได้