Street View

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.
Seleccionar plataforma: Android iOS JavaScript

Street View de Google Maps te permite explorar lugares en el mundo a través de imágenes en el nivel de la calle en 360 grados. Puedes explorar puntos de referencia de todo el mundo, ver maravillas naturales, navegar por un viaje o mostrar el exterior de tu negocio.

Descripción general

Google Street View proporciona vistas panorámicas de 360 grados de rutas designadas en su área de cobertura. La cobertura disponible a través del SDK es la misma que para la app 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.

El SDK de Maps para iOS proporciona un servicio de Street View que permite obtener y manipular las imágenes que se usan en Street View de Google Maps. Las imágenes de Street View se muestran como panorámicas y se ven desde el visor de Street View, un objeto de tipo GMSPanoramaView.

Panorámicas de Street View

Cada panorámica de Street View es una imagen, o un conjunto de imágenes, que proporciona una vista de 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). La panorámica de 360° resultante define una proyección en una esfera con la imagen ajustada a la superficie bidimensional de esa esfera.

Las panorámicas de Street View se pueden ver con el objeto GMSPanoramaView. Este objeto proporciona un visor que renderizará la panorámica 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.

Acceso a los datos de Street View

Los panoramas de Street View se identifican con dos metadatos:

panoramaID
El ID único de una panorámica de Street View. Este panoramaID puede cambiar con el tiempo y no es adecuado como referencia a largo plazo o codificada. La mejor forma de usar panoramaID es proporcionar acceso programático a diferentes imágenes de Street View.
coordinate
Es la ubicación precisa de esta imagen, expresada como CLLocationCoordinate2D. Usa un objeto coordinate para el almacenamiento continuo de una ubicación panorámica o para traducir las acciones del usuario en el mapa en una imagen de Street View.

Tanto panoramaID como coordinate se almacenan como propiedades del objeto GMSPanorama. Puedes solicitar un GMSPanorama del GMSPanoramaService mediante coordinate o panoramaID. El objeto resultante incluirá fragmentos de metadatos, además de un arreglo de vínculos a panoramas cercanos.

Configuración de la ubicación de la panorámica

La ubicación de la panorámica de Street View se puede establecer en función de las coordenadas.

  • El método moveNearCoordinate solicita una panorámica cerca de la coordenada.

  • El método moveNearCoordinate:radius es similar, pero te permite especificar un radio de búsqueda en metros alrededor de las coordenadas.

  • El método moveNearCoordinate:source te permite especificar una fuente. Una fuente resulta útil si deseas restringir Street View para que busque únicamente las panorámicas que están afuera. De forma predeterminada, las panorámicas de las ubicaciones son interiores o exteriores. Ten en cuenta que las panorámicas al aire libre pueden no existir en la ubicación especificada.

  • El método moveNearCoordinate:radius:source te permite especificar un radio y una fuente.

Ver imágenes de Street View

Cómo agregar un visor de Street View

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

  1. (Una vez) Sigue los pasos que se indican en Comenzar para obtener el SDK, obtener una clave y agregar los frameworks 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 del método loadView.
  3. Crea una instancia de GMSPanoramaView y crea una instancia de ella con el método initWithFrame: de GMSPanoramaView. Si se debe usar como la única vista del controlador de vista, se podría usar CGRectZero como marco del mapa (se cambiará automáticamente el tamaño del mapa).
  4. Establece 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 con un método como moveNearCoordinate:.

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

Swift

import GoogleMaps

class StreetView: UIViewController {

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

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

Objective‑C

#import "StreetView.h"
@import GoogleMaps;

@interface StreetView ()

@end

@implementation StreetView

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

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

@end
      

Personalización del visor

Puedes personalizar el visor restringiendo los gestos disponibles. De forma predeterminada, se habilitan el desplazamiento, el zoom y el acceso a panoramas adyacentes. Los gestos individuales se controlan a través de propiedades de GMSPanoramaView. Estas propiedades habilitan o inhabilitan los gestos controlados por el usuario; los cambios programáticos aún son posibles cuando el gesto está inhabilitado.

orientationGestures
Determina si el usuario podrá reorientar la cámara presionando o arrastrando. Configúralo en NO para inhabilitar los cambios de orientación de la cámara.
zoomGestures
Determina si el usuario podrá pellizcar para hacer zoom. Configúralo en NO para inhabilitar el zoom.
navigationGestures
Determina si el usuario podrá cambiar la panorámica visible. Los usuarios pueden presionar una vez en los vínculos de navegación o presionar dos veces la vista para cambiar las panorámicas. Para establecer los cambios, usa NO.

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

Swift

panoView.setAllGesturesEnabled(false)
      

Objective‑C

[panoView setAllGesturesEnabled:NO];
      

Cómo iniciar Street View con el esquema de URL

Las imágenes de Google Street View se pueden ver desde la aplicación de Google Maps para iOS. Puedes iniciar la aplicación de Google Maps para iOS en el modo Street View con el esquema de URL comgooglemaps si configuras el parámetro mapmode en streetview. A continuación, se muestra un ejemplo de una URL que iniciará Street View. Para obtener más información, consulta la documentación del esquema de URL.

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, tono y zoom.

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

Swift

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

Objective‑C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

Orientación

La ubicación de Street View define la ubicación del enfoque de la cámara para una imagen, pero no define la orientación de la cámara para esa imagen. Para ese 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 verdadero. Los encabezados se miden en sentido horario: el norte verdadero es 0, el este es 90, el sur es 180 y el oeste es 270.
  • pitch (0 predeterminado) define la varianza del ángulo “arriba” o “abajo” a partir de la inclinación predeterminada inicial 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 hacia arriba y ortogonales 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).

Analiza panoramas

Street View admite diferentes niveles de detalle de imágenes a través del zoom. Puedes configurar el nivel de zoom de manera programática, o los usuarios pueden cambiar el nivel en el visor pellizcando para hacer zoom.

Cómo mover la cámara

Una vez que hayas creado GMSPanoramaView y tenga 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. 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 esta acción, la cámara se ajustará al nuevo punto de vista sin animación. Se puede crear un objeto GMSCameraPosition para configurar cualquier combinación de orientación y zoom.

Swift

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

Objective‑C

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. Está disponible a través de la CALayer personalizada 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 si configuras las propiedades correspondientes:

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 del marcador y la ubicación de GMSCameraView. Si esta distancia se vuelve demasiado grande, el marcador se volverá demasiado pequeño para mostrarlo y se ocultará de la vista.

Establece la propiedad panoramaView en nil para quitarla de GMSPanoramaView.

Swift

marker.panoramaView = nil
      

Objective‑C

marker.panoramaView = nil;
      

Eventos

Puedes escuchar eventos que se producen en la panorámica de Street View, como cuando un usuario presiona la panorámica. Para escuchar eventos, debes implementar el protocolo GMSPanoramaViewDelegate. Consulta la guía general de eventos y la lista de métodos de GMSPanoramaViewDelegate.