ArcGIS einrichten
Schritte zur Verwendung von ArcGIS Maps SDK for Swift aus MapConductor. Basiskarten von ArcGIS können in ArcGISDesign ausgewählt werden; sowohl 3D- als auch 2D-Ansichten sind verfügbar.
Bevor Sie beginnen
API-Schlüssel abrufen
- Greifen Sie auf ArcGIS Location Platform oder ArcGIS Developers zu.
- Erstellen Sie einen API-Schlüssel für das Projekt.
- Aktivieren Sie die erforderlichen ArcGIS-Services (Basiskarte, Geocoding, Routing usw.).
- Schränken Sie den Schlüssel auf die Verwendung der App ein.
Mit Swift Package Manager hinzufügen
Geben Sie die Paket-URL unter Xcode: File > Add Package Dependencies ein. ArcGIS Maps SDK for Swift wird automatisch als Abhängigkeit hinzugefügt.
https://github.com/MapConductor/ios-for-arcgis
dependencies: [
.package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
.package(url: "https://github.com/MapConductor/ios-for-arcgis", from: "1.0.0"),
],
targets: [
.target(
name: "YourApp",
dependencies: [
.product(name: "MapConductorCore", package: "ios-sdk-core"),
.product(name: "MapConductorForArcGIS", package: "ios-for-arcgis"),
]
),
]SDK initialisieren
Rufen Sie `arcGISApiKeyInitialize(apiKey:)` genau einmal auf, bevor die Kartenansicht erstellt wird.
import SwiftUI
import MapConductorForArcGIS
@main
struct MyApp: App {
init() {
_ = arcGISApiKeyInitialize(apiKey: "YOUR_ARCGIS_API_KEY")
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}// Alternative: call it from the view's sdkInitialize closure
ArcGISMapView(state: mapState, sdkInitialize: {
_ = arcGISApiKeyInitialize(apiKey: "YOUR_ARCGIS_API_KEY")
})Standortberechtigung hinzufügen (falls erforderlich)
Wenn Sie den Standort verwenden, geben Sie den Verwendungszweck in Info.plist an.
<key>NSLocationWhenInUseUsageDescription</key> <string>We need your location to display on the map</string>
import CoreLocation
final class LocationManager: NSObject, ObservableObject, CLLocationManagerDelegate {
private let manager = CLLocationManager()
override init() {
super.init()
manager.delegate = self
}
func requestPermission() {
manager.requestWhenInUseAuthorization()
}
}PRÜFEN
Was Sie sehen sollten
Zeigen Sie die Karte in der 3D-Ansicht an. Wenn Sie dasselbe Zustandsobjekt an `ArcGISMapView2D` übergeben, erhalten Sie die 2D-Ansicht. Wenn Zoom, Schwenken und (im 3D-Modus) Kippen funktionieren, sind Sie fertig.
import SwiftUI
import MapConductorCore
import MapConductorForArcGIS
struct ContentView: View {
@StateObject var mapState = ArcGISMapViewState(
mapDesignType: ArcGISDesign.Streets,
cameraPosition: MapCameraPosition(
position: GeoPoint(latitude: 35.6812, longitude: 139.7671),
zoom: 12.0
)
)
var body: some View {
// 3D scene view; ArcGISMapView2D takes the very same state
ArcGISMapView(state: mapState)
.ignoresSafeArea()
}
}Kartendesigns
ArcGISDesign unterstützt Basiskarten von Esri. Aus einer bekannten ID können Sie mit `ArcGISDesign.Create(id:)` erstellen.
Fehlerbehebung
Karte bleibt komplett weiß
- Überprüfen Sie, ob `arcGISApiKeyInitialize(apiKey:)` vor der Kartenansicht aufgerufen wurde.
- Überprüfen Sie, ob die erforderlichen ArcGIS-Services im Schlüssel aktiviert sind.
- Überprüfen Sie, ob das Deployment-Ziel iOS 17.0 oder höher ist.
Build schlägt fehl
- Leeren Sie den Build-Ordner (Cmd+Shift+K).
- Löschen Sie `~/Library/Developer/Xcode/DerivedData` und bauen Sie neu.
- Aktualisieren Sie die Abhängigkeiten von Swift Package Manager. Vermeiden Sie die gleichzeitige Verwendung mit CocoaPods.
Weiter
ArcGISMapView ist 3D, ArcGISMapView2D ist 2D. Beide teilen sich dasselbe Zustandsobjekt.