Configurar Google Maps
Pasos para usar el Google Maps SDK para iOS con MapConductor. Elige esta opción para aplicaciones que ya dependen de Google Maps o cuando necesitas el tipo de mapa GoogleMapDesign.
Antes de empezar
Obtener la clave de API
- Accede a Google Cloud Console.
- Crea un proyecto o selecciona uno existente.
- Habilita Maps SDK para iOS.
- Crea una clave de API en 'Credenciales'.
- Restringe la clave al ID de paquete (bundle ID) de la aplicación.
Agregar con Swift Package Manager
Ingresa la URL del paquete en Xcode > File > Add Package Dependencies. El SDK nativo se incluye automáticamente como dependencia, por lo que no necesitas agregarlo por separado.
https://github.com/MapConductor/ios-for-googlemaps
dependencies: [
.package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
.package(url: "https://github.com/MapConductor/ios-for-googlemaps", from: "1.0.0"),
],
targets: [
.target(
name: "YourApp",
dependencies: [
.product(name: "MapConductorCore", package: "ios-sdk-core"),
.product(name: "MapConductorForGoogleMaps", package: "ios-for-googlemaps"),
]
),
]Inicializar el SDK
Llama a GMSServices.provideAPIKey(_:) una sola vez antes de que se cree la vista de mapa. La estructura App en @main es el lugar recomendado.
import SwiftUI
import GoogleMaps
import MapConductorForGoogleMaps
@main
struct MyApp: App {
init() {
GMSServices.provideAPIKey("YOUR_GOOGLE_MAPS_API_KEY")
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}// Alternative: call it from the view's sdkInitialize closure
GoogleMapView(state: mapState, sdkInitialize: {
GMSServices.provideAPIKey("YOUR_GOOGLE_MAPS_API_KEY")
})Agregar permisos de ubicación (si es necesario)
Si usas el servicio de ubicación en Google Maps, describe el propósito en Info.plist y solicita el permiso desde la aplicación.
<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
Compila y ejecuta este ContentView. Si el mapa aparece y funcionan el zoom y el desplazamiento, has terminado.
import SwiftUI
import MapConductorCore
import MapConductorForGoogleMaps
struct ContentView: View {
@StateObject var mapState = GoogleMapViewState(
cameraPosition: MapCameraPosition(
position: GeoPoint(latitude: 35.6762, longitude: 139.6503),
zoom: 12.0
)
)
var body: some View {
GoogleMapView(state: mapState)
.ignoresSafeArea()
}
}Diseños de mapa
GoogleMapDesign es compatible con los tipos de mapa de Google.
Solución de problemas
El mapa no aparece (pantalla gris)
- Verifica que se haya llamado a GMSServices.provideAPIKey(_:) antes de crear la vista de mapa.
- Verifica en la consola si Maps SDK para iOS está habilitado.
- Verifica que la restricción del ID de paquete de la clave coincida con el ID de paquete real.
- Verifica que el destino de implementación sea iOS 16.0 o posterior.
Error de compilación
- Limpia la carpeta de compilación (Cmd+Shift+K).
- Elimina ~/Library/Developer/Xcode/DerivedData y vuelve a compilar.
- Actualiza las dependencias de Swift Package Manager. Evita usarlo junto con CocoaPods.
Siguiente
Cuando aparece GoogleMapView, se pueden escribir Marker, Polyline y Circle con la API común. Incluso si se cambia el proveedor, no es necesario reescribir esa parte.