Eso es todo.

Para comenzar a desarrollar, consulta nuestra documentación para desarrolladores.

Activar el Google Maps SDK for iOS

Para que puedas comenzar, te proporcionaremos orientación en la Google Developers Console a fin de que hagas primero algunas acciones:

  1. Crear o seleccionar un proyecto
  2. Activar el Google Maps SDK for iOS
  3. Crear claves correspondientes
Continuar

Street View

Street View de Google Maps te permite explorar sitios del mundo mediante imágenes a 360 grados y al nivel de la calle. Puedes explorar monumentos del mundo, ver maravillas del mundo, realizar un viaje u obtener una vista exterior de tu negocio.

Información general

Google Street View proporciona vistas panorámicas a 360 grados de ubicaciones designadas en su área de cobertura. La cobertura disponible a través del SDK es igual a la que ofrece la aplicación de Google Maps para iOS o https://maps.google.com/. Puedes obtener más información sobre Street View y ver las áreas admitidas en un mapa interactivo en Acerca de Street View.

La Google Maps SDK for iOS proporciona un servicio de Street View para obtener y administrar las imágenes usadas en Street View de Google Maps. Las imágenes de Street View se devuelven como panoramas y se visualizan desde el interior del visor de Street View (un objeto del tipo GMSPanoramaView).

Panoramas de Street View

Cada panorama de Street View es una imagen, o un conjunto de imágenes, que proporciona una vista a 360 grados desde una ubicación. Las imágenes cumplen con la proyección equirrectangular (Plate Carrée), que contiene 360 grados de vista horizontal(vista envolvente completa) y 180 grados de vista vertical (del extremo superior al extremo inferior). El panorama a 360 grados resultante define una proyección en una esfera con la imagen ajustada a la superficie bidimensional de dicha esfera.

Se pueden visualizar panoramas de Street View con el objeto GMSPanoramaView. Este objeto proporciona un visor que representará el panorama como una esfera con una cámara en el centro. Puedes controlar de manera programática la orientación de la cámara y varias propiedades que personalizan el visor.

Cómo acceder a datos de Street View

Los panoramas de Street View se identifican con dos metadatos:

panoramaID
Id. exclusivo de un panorama de Street View. Este objeto panoramaID puede cambiar con el tiempo y no es adecuado como referencia a largo plazo o codificada en forma rígida. La mejor aplicación de panoramaID contempla brindar acceso programático a diferentes imágenes de Street View. Nota: Los panoramas de Innerspace y fotos esféricas no son compatibles por el momento.
coordinate
Ubicación precisa de esta imagen, expresada como CLLocationCoordinate2D. Usa un objeto coordinate para el almacenamiento continuo de la ubicación de un panorama, o para convertir en imágenes de Street View las acciones realizadas por los usuarios en el mapa.

panoramaID y coordinate se almacenan como propiedades del objeto GMSPanorama. Puedes solicitar un objeto GMSPanorama del GMSPanoramaService usando coordinate o panoramaID. El objeto resultante incluirá ambos metadatos y un arreglo de vínculos a panoramas cercanos.

Cómo visualizar imágenes de Street View

Agregar un visor de Street View

Los pasos básicos para agregar un visor son los siguientes:

  1. (Solo debes realizar este paso una vez). Sigue los procedimientos de Primeros pasos para obtener el SDK, acceder a una clave y agregar los marcos necesarios.
  2. Crea o actualiza un ViewController. Si el panorama se muestra cuando este controlador de vista se vuelva visible, asegúrate de crearlo dentro de método loadView.
  3. Configura una clase GMSPanoramaView y crea una instancia de ella usando el método GMSPanoramaView initWithFrame:. Si debe usarse como la única vista del controlador de vista, CGRectZero podría usarse como marco del mapa (el tamaño del mapa se modificará automáticamente).
  4. Configura el objeto GMSPanoramaView como la vista del controlador de vista; p. ej., self.view = panoView;.
  5. Configura la ubicación de la imagen de Street View usando un método como moveNearCoordinate:.

En el ejemplo siguiente, se agrega un visor de Street View a una aplicación.

Swift

import UIKit
import GoogleMaps

class ViewController: UIViewController, GMSMapViewDelegate {

  override func loadView() {
    let panoView = GMSPanoramaView(frame: .zero)
    self.view = panoView

    panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312))
  }
}

Objective-C

#import "ViewController.h"
@import GoogleMaps;

@implementation ViewController

- (void)loadView {
    GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
    self.view = panoView;

    [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)];
}
@end

Personalizar el visor

Puedes personalizar el visor restringiendo los gestos disponibles. De manera predeterminada, se encuentran habilitados el desplazamiento, el zoom y el acceso a panoramas cercanos. Los gestos individuales se controlan a través de propiedades de GMSPanoramaView. Estas propiedades habilitan o deshabilitan los gestos controlados por el usuario. No obstante, es posible realizar cambios programáticos cuando los gestos están deshabilitados.

orientationGestures
Determina si el usuario puede reorientar la cámara aplicando toques o arrastre. Fija el valor en NO para deshabilitar cambios de orientación en la cámara.
zoomGestures
Determina si el usuario podrá usar dos dedos para aplicar zoom. Fija el valor en NO para deshabilitar el zoom.
navigationGestures
Determina si el usuario podrá cambiar el panorama visible. Los usuarios pueden usar un solo toque en vínculos de navegación, o dos en la vista, para modificar panoramas. Fija el valor en NO para deshabilitar cambios de navegación.

Puedes habilitar o deshabilitar todos los gestos a la vez con el método setAllGesturesEnabled:.

[panoView_ setAllGesturesEnabled:NO];

Iniciar Street View con el esquema de direcciones URL

Es posible visualizar las imágenes de Street View de Google desde la aplicación de Google Maps para iOS. Puedes iniciar la aplicación de Google Maps para iOS en el modo de Street View con el esquema de direcciones de URL de comgooglemaps fijando el parámetro mapmode en streetview. A continuación, se ofrece un ejemplo de una URL que iniciará Street View. Consulta las la documentación sobre esquemas de URL para obtener más información.

comgooglemaps://?center=46.414382,10.013988&mapmode=streetview

Ubicaciones y punto de vista (POV) de Street View

GMSPanoramaCamera te permite configurar el punto de vista de la cámara de Street View como una combinación de encabezado, inclinación y zoom.

Con el fragmento de código siguiente se orientará la cámara hacia el sur y levemente hacia abajo.

Swift

let panoView = GMSPanoramaView(frame: .zero)
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)

Objective-C

GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
panoView_.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                  pitch:-10
                                                   zoom:1];

Orientación

La ubicación de Street View define la ubicación del foco de la cámara de una imagen, pero no establece la orientación de la cámara para dicha imagen. Para este propósito, el objeto GMSOrientation define dos propiedades:

  • heading define el ángulo de rotación alrededor del sitio de la cámara en grados respecto del norte geográfico. Los encabezados se miden en sentido horario: El norte geográfico es el grado 0, el este el 90, el sur el 180 y el oeste el 270.
  • pitch (el valor predeterminado es 00) define la variación de ángulo “hacia arriba” o “hacia abajo” a partir de la inclinación inicial predeterminada de la cámara, que a menudo (no siempre) es horizontal y plana. (Por ejemplo, una imagen tomada en una colina posiblemente exhiba una inclinación predeterminada que no es horizontal). Los ángulos de inclinación se miden con valores positivos que apuntan hacia arriba (hasta +90 grados en línea recta hacia arriba y ortogonal respecto de la inclinación predeterminada) y valores negativos que apuntan hacia abajo (hasta -90 grados en línea recta hacia abajo y ortogonales respecto de la inclinación predeterminada).

Zoom

Street View admite diferentes niveles de detalle de imágenes a través del zoom. Puedes modificar el nivel de zoom de manera programática y los usuarios pueden cambiar el nivel en el visor usando los dedos para hacer zoom.

Cómo mover la cámara

Una vez que hayas creado GMSPanoramaView, y que cuente con una cámara configurada o predeterminada, puedes cambiarlo de varias maneras. Cuando cambias la cámara, tienes la opción de animar el movimiento resultante de esta. En la animación se interpolan los atributos actuales y los nuevos de la cámara.

Puedes modificar el objeto GMSPanoramaCamera y configurarlo en la propiedad camera de GMSPanoramaView. Con esto, se moverá rápidamente la cámara hasta el nuevo punto de vista sin animación. Se puede crear un objeto GMSCameraPosition para configurar combinaciones de orientación y zoom.

Swift

let panoView = GMSPanoramaView(frame: .zero)
panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)

Objective-C

GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
panoView.camera = [GMSPanoramaCamera cameraWithHeading:180 pitch:-10 zoom:1];

Puedes animar una transición llamando al método animateToCamera:animationDuration: de GMSPanoramaView. A su vez, puedes controlar la cámara usando Core Animation. Esta posibilidad se encuentra disponible a través de la clase CALayer en GMSPanoramaView, GMSPanoramaLayer.

Marcadores dentro de Street View

El objeto GMSPanoramaView puede mostrar marcadores de mapas. Puedes usar el mismo objeto GMSMarker en un objeto GMSMapView o GMSPanoramaView configurando las siguientes propiedades:

Swift

// Create a marker at the Eiffel Tower
let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294)
let marker = GMSMarker(position: position)

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView

// Add the marker to a GMSMapView object named mapView
marker.map = mapView

Objective-C

// Create a marker at the Eiffel Tower
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294);
GMSMarker *marker = [GMSMarker markerWithPosition:position];

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView;

// Add the marker to a GMSMapView object named mapView
marker.map = mapView;

El tamaño de los marcadores se adaptará en función de la distancia entre la posición de estos y la ubicación de GMSCameraView. Si esta distancia se vuelve demasiado grande , el tamaño del marcador será muy pequeño como para aparecer y quedará oculto.

Nota: No todas las funciones de marcadores se encuentran disponibles al usar GMSPanoramaView.

Fija la propiedad panoramaView en nil para eliminarla de GMSPanoramaView.

Swift

marker.panoramaView = nil

Objective-C

marker.panoramaView = nil;

Eventos

Puedes escuchar eventos que tienen lugar en el panorama de Street View, como los que se producen cuando el usuario toca uno. Para escuchar eventos, debes implementar el protocolo GMSPanoramaViewDelegate. Consulta toda la guía de eventos y la lista de métodos de GMSPanoramaViewDelegate.

Enviar comentarios sobre…

Google Maps SDK for iOS
Google Maps SDK for iOS
¿Necesitas ayuda? Visita nuestra página de asistencia.