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.
Antes de empezar
Obtener clave de API
- Acceda a ArcGIS Location Platform o ArcGIS Developers.
- Cree una clave de API para el proyecto.
- Habilite los servicios de ArcGIS necesarios (mapa base, geocodificación, enrutamiento, etc.).
- Restrinja la clave al uso de la aplicación.
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.
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"),
]
),
]Inicializar el SDK
Llame a `arcGISApiKeyInitialize(apiKey:)` una sola vez antes de crear la vista de mapa.
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")
})Añadir permisos de ubicación (si es necesario)
Si usa la ubicación, escriba el propósito en Info.plist.
<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()
}
}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.
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:)`.
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.