Doku / Einrichtung / iOS / ArcGIS

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.

PACKAGE
ios-for-arcgis
API KEY
Erforderlich
MIN iOS
17.0
VIEW
ArcGISMapView / 2D
Derselbe Anbieter, andere PlattformenAndroidReact

Bevor Sie beginnen

Xcode 15 oder höher
ArcGIS-Entwicklerkonto
ArcGIS-API-Schlüssel
Deployment-Ziel iOS 17.0 oder höher
STEP 01

API-Schlüssel abrufen

  1. Greifen Sie auf ArcGIS Location Platform oder ArcGIS Developers zu.
  2. Erstellen Sie einen API-Schlüssel für das Projekt.
  3. Aktivieren Sie die erforderlichen ArcGIS-Services (Basiskarte, Geocoding, Routing usw.).
  4. Schränken Sie den Schlüssel auf die Verwendung der App ein.
STEP 02

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.

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

SDK initialisieren

Rufen Sie `arcGISApiKeyInitialize(apiKey:)` genau einmal auf, bevor die Kartenansicht erstellt wird.

MyApp.swiftSwift
import SwiftUI
import MapConductorForArcGIS

@main
struct MyApp: App {
    init() {
        _ = arcGISApiKeyInitialize(apiKey: "YOUR_ARCGIS_API_KEY")
    }

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
ContentView.swiftSwift
// Alternative: call it from the view's sdkInitialize closure
ArcGISMapView(state: mapState, sdkInitialize: {
    _ = arcGISApiKeyInitialize(apiKey: "YOUR_ARCGIS_API_KEY")
})
STEP 04

Standortberechtigung hinzufügen (falls erforderlich)

Wenn Sie den Standort verwenden, geben Sie den Verwendungszweck in Info.plist an.

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()
    }
}

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.

ContentView.swiftSwiftUI
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.

ArcGISDesign
Notes
Streets
Standard-Straßenkarte
Imagery
Satellitenbild
Topographic
Topografische Karte
OsmStandard
OpenStreetMap-Standardstil
NavigationNight
Navi-Nacht
DarkGray
Für Datenhintergrund

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.