Configurar HERE
Pasos para usar el HERE SDK desde MapConductor. Se inicializa con Access Key ID y Secret.
Antes de empezar
Obtener las credenciales
- Acceda a HERE Platform.
- Cree un proyecto o seleccione uno existente.
- Cree un Access Key para el HERE SDK.
- Copie el Access Key ID y el Secret.
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.
https://github.com/MapConductor/ios-for-here
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"),
]
),
]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.
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()
}
}
}// 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"
)
})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.
<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
Si aparece el mapa de HERE y funcionan el zoom y el desplazamiento, ha finalizado.
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.
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.