En esta entrada vamos a ver cómo mostrar imágenes de Google Street View, pudiendo modificar los ángulos de visión y el zoom. El proceso es muy sencillo, primeramente hay que crear una URL que muestre la imagen y luego descargar esa imagen al Picturebox. Realmente, este último paso se podría obviar si utilizamos el control WebBrowser, ya que podríamos mostrar la imagen directamente sobre él.
Vamos a ver un ejemplo de una URL que mostraría una imagen:
Ahora vamos a ir explicando cada parámetro de los que vemos:
PARÁMETROS
- Size (obligatorio): indica el tamaño de la imagen que será devuelta. Un ejemplo sería "size=400x400".
- Location (obligatorio): localización de donde se quiere ver la imagen. Puede utilizarse una dirección postal (Puerta del Sol, Madrid, España) o por latitud/longitud (40.4167522,-3.7033701). Un ejemplo sería, "location=Puerta+de+Sol,+Madrid,+España" o "location=40.4167522,-3.7033701".
- Heading (opcional): indica el ángulo horizontal de la cámara, es decir, desde la localización seleccionada si toma valor 90º, apuntará al Norte, en caso de ser su valor 180º, apuntará al Sur. Si este parámetro no se determina, apuntará a la localización especificada. Un ejemplo sería, "heading=90".
- Pitch (opcional): indica el ángulo vertical de la cámara, que oscila desde -90º (cámara apuntando hacia abajo) hasta los 90º (cámara apuntando hacia arriba). Un ejemplo en el que la cámara apuntaría sin ángulo de inclinación sería, "pitch=0".
- Fov (opcional): indica el zoom que se va a aplicar a la imagen. Sus valores oscilan entre 10 y 120. El valor 120 sería el menor zoom posible y el valor 10 el zoom máximo. Un ejemplo de este parámetro sería, "fov=90".
- Sensor (obligatorio): determina si la petición procede de un dispositivo con sensor (por ejemplo un receptor GNSS (GPS) de un teléfono móvil). Se puede seleccionar entre true o false. Un ejemplo sería, "sensor=false".
Ahora vamos a ver el código fuente. En esta primera parte habrá dos funciones. La primera va a crear la URL con los parámetros, y llamará a la segunda función que devolverá el Bitmap asociado a esa imagen, es decir, va a descargar la imagen y asignarla a un Bitmap.
'Se almacenará al url de la imagen Property URLimagen As String 'Función que recibe los parámetros y devulve un bitmap con la imagen de Street View Public Function StreetView(ByVal direccion As String, ByVal tamañoImagen As Size, Optional ByVal GiroHorizontal As Integer = -1, Optional ByVal GiroVertical As Integer = 0, Optional ByVal zoom As Integer = 90) 'Bitmap con tamaño imagen recibido Dim imagenStreet As New Bitmap(tamañoImagen.Width, tamañoImagen.Height) 'CREACIÓN de URL--------- 'Creamos variable tamaño Dim tamaño As String tamaño = "size=" & tamañoImagen.Width & "x" & tamañoImagen.Height 'Creamos variable direccion direccion = direccion.Replace(" ", "+") direccion = "&location=" & direccion 'Creamos variable giro horizontal Dim horizontal As String If GiroHorizontal <> -1 Then horizontal = "&heading=" & GiroHorizontal Else horizontal = "" End If 'Creamos variable giro vertical Dim vertical As String vertical = "&pitch=" & GiroVertical 'Creamos variable zoom Dim zoomS As String zoomS = "&fov=" & zoom 'Creamos la url con los datos Dim url = "http://maps.googleapis.com/maps/api/streetview?" & tamaño & direccion & horizontal & vertical & zoomS & "&sensor=false" 'Guardamos al url en la propiedad URLimagen URLimagen = url '------- 'Descargamos la imagen imagenStreet = ImagenDesdeURL(url) Return imagenStreet End Function 'Carga imagen desde URL y devuelve un bitmap Public Function ImagenDesdeURL(ByVal URL As String) 'Creamos un bitmap vacío Dim bmp As Bitmap = Nothing Try 'Creamos la petición Dim request As System.Net.WebRequest = System.Net.WebRequest.Create(URL) Dim response As System.Net.WebResponse = request.GetResponse() Dim responseStream As System.IO.Stream = response.GetResponseStream() bmp = New Bitmap(responseStream) Catch ex As Exception End Try Return bmp End Function
El siguiente paso será crear un formulario similar al que se muestra en la siguiente imagen:
![]() |
Formulario Street View |
Y vamos a asignar el siguiente código al botón y a los 3 HScrollbars.
'Botón para buscar imagen Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click PictureBox1.Image = StreetView(txtDireccion.Text, New Size(nupAncho.Value, nupAlto.Value), HShorizontal.Value, HsVertical.Value, HsZoom.Value) txtURL.Text = URLimagen End Sub 'Scroll para ángulo vertical Private Sub HsVertical_Scroll(sender As Object, e As ScrollEventArgs) Handles HsVertical.Scroll lblvert.Text = HsVertical.Value End Sub 'Scroll para ángulo horizontal Private Sub HShorizontal_Scroll(sender As Object, e As ScrollEventArgs) Handles HShorizontal.Scroll lblhoriz.Text = HShorizontal.Value End Sub 'Scroll para zoom Private Sub HsZoom_Scroll(sender As Object, e As ScrollEventArgs) Handles HsZoom.Scroll lblzoom.Text = HsZoom.Value End Sub
Ejecutamos el programa y ya podemos empezar a visualizar imágenes estáticas de Street View en nuestra aplicación.
![]() |
Imagen Street View |
Más información sobre imágenes Street View aquí.
Descarga el código fuente:
No hay comentarios:
Publicar un comentario