การตั้งค่า TomTom
ขั้นตอนการใช้ TomTom Orbis Maps ผ่าน MapConductor มีฟังก์ชันเหมือนกับเวอร์ชัน Android และรองรับ Marker, Polyline, Polygon, Circle, GroundImage, RasterLayer และ InfoBubble
ก่อนเริ่ม
รับคีย์ API
ออกคีย์ API สำหรับ Orbis Maps ใน TomTom Developer Portal
เพิ่มแหล่งที่มาของ TomTom SDK
TomTom Orbis Maps Display SDK มีให้ใช้งานเป็น xcframework แบบไบนารีจาก Artifactory ของ TomTom เนื่องจากแพ็กเกจ MapConductor อ้างอิงถึงสิ่งนี้เป็นเป้าหมายแบบไบนารี คุณจึงเพิ่มแหล่งที่มาของ TomTom ใน Podfile ของแอป
source 'https://api.tomtom.com/maps-sdk-ios/cocoapods'
เพิ่มด้วย Swift Package Manager
ป้อน URL ของแพ็กเกจจาก File > Add Package Dependencies ใน Xcode
https://github.com/MapConductor/ios-for-tomtom
dependencies: [
.package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
.package(url: "https://github.com/MapConductor/ios-for-tomtom", from: "1.0.0"),
],
targets: [
.target(
name: "YourApp",
dependencies: [
.product(name: "MapConductorCore", package: "ios-sdk-core"),
.product(name: "MapConductorForTomTom", package: "ios-for-tomtom"),
]
),
]ส่งคีย์ API
ส่งผ่านทีละมุมมอง หรือวางไว้ใน Info.plist
// Per view TomTomMapView(state: state, apiKey: "YOUR_TOMTOM_API_KEY")
<key>TomTomAPIKey</key> <string>YOUR_TOMTOM_API_KEY</string>
ตรวจสอบ
สิ่งที่ควรเห็น
หากแผนที่และมาร์คเกอร์ปรากฏขึ้น ถือว่าเสร็จสิ้น มาร์คเกอร์ที่ลากได้สามารถลากได้ตามปกติ
import SwiftUI
import MapConductorCore
import MapConductorForTomTom
struct ContentView: View {
@StateObject var state = TomTomMapViewState(
mapDesignType: TomTomMapDesign.Standard,
cameraPosition: MapCameraPosition(
position: GeoPoint(latitude: 52.3676, longitude: 4.9041),
zoom: 11
)
)
var body: some View {
TomTomMapView(state: state) {
Marker(state: MarkerState(
position: GeoPoint(latitude: 52.3676, longitude: 4.9041),
icon: DefaultMarkerIcon(label: "Amsterdam"),
draggable: true
))
}
}
}ดีไซน์แผนที่
TomTomMapDesign รองรับสไตล์มาตรฐานสำหรับ Orbis Maps
การแก้ปัญหา
แผนที่ยังคงสีขาวทั้งหมด
- ตรวจสอบว่า apiKey ของมุมมองหรือ TomTomAPIKey ใน Info.plist มีค่าหรือไม่
- ตรวจสอบว่าเป้าหมายการทำให้ใช้งานได้เป็น iOS 16.0 ขึ้นไปหรือไม่
ไม่พบ xcframework
- SDK ของ TomTom เป็นการแจกจ่ายแบบไบนารี ตรวจสอบว่าคุณได้เพิ่มแหล่งที่มาของ TomTom ใน Podfile หรือไม่
บิลด์ล้มเหลว
- ล้างโฟลเดอร์บิลด์ (Cmd+Shift+K)
- ลบ ~/Library/Developer/Xcode/DerivedData และสร้างใหม่
- อัปเดตการพึ่งพาของ Swift Package Manager หลีกเลี่ยงการใช้ร่วมกับ CocoaPods
ถัดไป
เนื่องจาก TomTom ไม่มีการลากแบบเนทีฟสำหรับมาร์คเกอร์ MapConductor จึงใช้เจสเจอร์จาก MapView โดยตรงเพื่อใช้งานการลาก การซูมจะถูกคำนวณให้เทียบเท่ากับ Google โดยคำนึงถึงละติจูดของกล้อง