Documentación / Configuración / iOS / HERE

Configurar HERE

Pasos para usar el HERE SDK desde MapConductor. Se inicializa con Access Key ID y Secret.

PACKAGE
ios-for-here
API KEY
Key ID + Secret
MIN iOS
16.0
VIEW
HereMapView
El mismo proveedor, otras plataformasAndroidReact

Antes de empezar

Xcode 15 o posterior
Cuenta en HERE Platform
Access Key ID y Secret del HERE SDK
Deployment target iOS 16.0 o posterior
STEP 01

Obtener las credenciales

  1. Acceda a HERE Platform.
  2. Cree un proyecto o seleccione uno existente.
  3. Cree un Access Key para el HERE SDK.
  4. Copie el Access Key ID y el Secret.
STEP 02

Agregar con Swift Package Manager

Ingrese la URL del paquete desde File > Add Package Dependencies en Xcode. El SDK nativo se incluye automáticamente como dependencia, por lo que no es necesario agregarlo por separado.

Package URLSwift Package Manager
https://github.com/MapConductor/ios-for-here
Package.swiftSwift
dependencies: [
    .package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
    .package(url: "https://github.com/MapConductor/ios-for-here", from: "1.0.0"),
],
targets: [
    .target(
        name: "YourApp",
        dependencies: [
            .product(name: "MapConductorCore", package: "ios-sdk-core"),
            .product(name: "MapConductorForHERE", package: "ios-for-here"),
        ]
    ),
]
STEP 03

Inicializar el SDK

Llame a initializeHERE(accessKeyId:accessKeySecret:) una sola vez antes de crear la vista de mapa. Esta función puede lanzar errores, no los ignore.

MyApp.swiftSwift
import SwiftUI
import MapConductorForHERE

@main
struct MyApp: App {
    init() {
        do {
            try initializeHERE(
                accessKeyId: "YOUR_HERE_ACCESS_KEY_ID",
                accessKeySecret: "YOUR_HERE_ACCESS_KEY_SECRET"
            )
        } catch {
            assertionFailure("Failed to initialize HERE SDK: \(error)")
        }
    }

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
ContentView.swiftSwift
// Alternative: call it from the view's sdkInitialize closure
HereMapView(state: mapState, sdkInitialize: {
    try? initializeHERE(
        accessKeyId: "YOUR_HERE_ACCESS_KEY_ID",
        accessKeySecret: "YOUR_HERE_ACCESS_KEY_SECRET"
    )
})
STEP 04

Agregar permisos de ubicación (si es necesario)

Si utiliza servicios de ubicación con el HERE SDK, 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

Si aparece el mapa de HERE y funcionan el zoom y el desplazamiento, ha finalizado.

ContentView.swiftSwiftUI
import SwiftUI
import MapConductorCore
import MapConductorForHERE

struct ContentView: View {
    @StateObject var mapState = HereMapViewState(
        mapDesignType: HereMapDesign.NormalDay,
        cameraPosition: MapCameraPosition(
            position: GeoPoint(latitude: 35.6812, longitude: 139.7671),
            zoom: 12.0
        )
    )

    var body: some View {
        HereMapView(state: mapState)
            .ignoresSafeArea()
    }
}

Diseños de mapa

HereMapDesign es compatible con los esquemas de mapa de HERE.

HereMapDesign
Notes
NormalDay / NormalNight
Estilo estándar día/noche
Satellite
Imagen satelital
HybridDay
Imagen satelital + carreteras y etiquetas
LiteDay
Estilo ligero de día
LogisticsDay
Para logística
RoadNetworkDay
Enfoque en la red de carreteras

Solución de problemas

El mapa permanece completamente blanco

  • Verifique que el Access Key ID y el Secret sean correctos.
  • Verifique que initializeHERE se haya llamado antes que la vista de mapa.
  • Capture el error de inicialización y registre el contenido del error.

Error de compilación

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

Siguiente

Marcadores, polilíneas, polígonos, círculos, imágenes de suelo, capas ráster e InfoBubble pueden usarse todos a través de una API común. Dado que HERE no admite de forma nativa los agujeros en polígonos, se generan y dibujan mosaicos de máscara. El código del llamador es el mismo que para otros proveedores.