Documentación / Configuración / iOS / ArcGIS

Configurar ArcGIS

Pasos para usar ArcGIS Maps SDK for Swift desde MapConductor. Puedes seleccionar mapas base de ArcGIS en ArcGISDesign y hay disponibles vistas 3D y 2D.

PACKAGE
ios-for-arcgis
API KEY
Necesario
MIN iOS
17.0
VIEW
ArcGISMapView / 2D
El mismo proveedor, otras plataformasAndroidReact

Antes de empezar

Xcode 15 o posterior
Cuenta de desarrollador de ArcGIS
Clave de API de ArcGIS
Destino de despliegue iOS 17.0 o posterior
STEP 01

Obtener clave de API

  1. Acceda a ArcGIS Location Platform o ArcGIS Developers.
  2. Cree una clave de API para el proyecto.
  3. Habilite los servicios de ArcGIS necesarios (mapa base, geocodificación, enrutamiento, etc.).
  4. Restrinja la clave al uso de la aplicación.
STEP 02

Añadir con Swift Package Manager

Introduzca la URL del paquete en Xcode: File > Add Package Dependencies. ArcGIS Maps SDK for Swift se añade automáticamente como dependencia.

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

Inicializar el SDK

Llame a `arcGISApiKeyInitialize(apiKey:)` una sola vez antes de crear la vista de mapa.

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

Añadir permisos de ubicación (si es necesario)

Si usa la ubicación, escriba el propósito en 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()
    }
}

VERIFICAR

Lo que deberías ver

Muestre el mapa en vista 3D. Si pasa el mismo objeto de estado a `ArcGISMapView2D`, será vista 2D. Si funcionan el zoom, el desplazamiento y (en 3D) la inclinación, está completo.

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

Diseños de mapa

ArcGISDesign admite mapas base de Esri. Desde un ID conocido puede crear con `ArcGISDesign.Create(id:)`.

ArcGISDesign
Notes
Streets
Mapa de carreteras estándar
Imagery
Imagen satelital
Topographic
Mapa topográfico
OsmStandard
Estilo estándar de OpenStreetMap
NavigationNight
Navegación nocturna
DarkGray
Para fondo de datos

Solución de problemas

El mapa permanece completamente blanco

  • Verifique que se llamó a `arcGISApiKeyInitialize(apiKey:)` antes que la vista de mapa.
  • Verifique que los servicios de ArcGIS necesarios estén habilitados en la clave.
  • Verifique que el destino de despliegue sea iOS 17.0 o posterior.

La compilación falla

  • Limpie la carpeta de compilación (Cmd+Shift+K).
  • Elimine `~/Library/Developer/Xcode/DerivedData` y vuelva a compilar.
  • Actualice las dependencias de Swift Package Manager. Evite usarlo junto con CocoaPods.

Siguiente

ArcGISMapView es 3D, ArcGISMapView2D es 2D. Ambos comparten el mismo objeto de estado.