Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Extraer Las Imágenes Que Forman Un Mapa De OpenStreet
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Extraer Las Imágenes Que Forman Un Mapa De OpenStreet 
 
Un mapa de OpenStreet consiste de múltiples imágenes juntas.

El código, que os dejo, debería  ayudar a descargar la imagen que forman el mapa que vosotros estáis viendo.

Se necesita:
* activar los siguientes componentes: gb.qt4.webkit, gb.net y gb.net.curl;
* poner sobre el Form los siguientes objectos: un WebView y dos Button .
Hacer clic sobre el map, cuando aparece en WebView; despues presionar el Button1.

Private im As Image  
Private myhttp As New HttpClient As "myhttp"    
Private stringa As String  
Private ind As New String[]  
Private n As Byte  
Private we As WebElement  
  
  
Public Sub Form_Open()  
  
  Button1.Text = "Extraer\nlas imágenes"  
  Button1.Enabled = False  
  Button2.Text = "Borrar las imágenes\ndescargadas"  
  Button2.Enabled = False  
  
  im = New Image(WebView1.W, WebView1.H)  
  
  WebView1.Url = "http://www.openstreetmap.org/#map=5/41.656/14.150"  
  
End  
  
  
Public Sub WebView1_Load()  
  
  Print "Para iniciar la extracción de las imágenes,\nhaz clic en el mapa.\n"  
  
End  
  
  
Public Sub WebView1_MouseUp()  
  
 Dim wf As New WebFrame  
  
  n = 0  
  ind.Clear()  
  
  wf = WebView1.Frame  
  
  we = wf.Document  
  
  Print WebView1.Frame.Url  
  
  Print "\nPresionar la tecla "; Quote("Extraer las imágenes"); "."  
  
  Button1.Enabled = True  
  
End  
  
  
Public Sub Button1_Click()  
  
 Dim i1, i2 As Integer  
 Dim s2 As String  
 Dim s As String = we.HTML  
  
  While True  
    i1 = InStr(s, ".tile.openstreetmap.org/")  
    If i1 < 10 Then Break  
    s2 = Mid(s, i1 - 8, 64)  
    i2 = InStr(s2, "\"><")
    ind.Add(Replace(Left(s2, i2 - 1), "\"", Null))  
    ind.Sort()  
    s = Mid(s, i1 + i2, RInStr(s, ".png"))  
  Wend  
  
  Print "\nEl mapa es formada de "; ind.Count; " imágenes.\n"  
  
  Scarica()  
  
End  
  
  
Private Procedure Scarica()  
  
  If ind.Count = 0 Then Return  
  
  Print ind[n], n + 1  
  
'  Comunica con el servidor para descargar el fichero imagen:
  myhttp.URL = ind[n]  
  myhttp.Timeout = 15    
  myhttp.Get()  
      
End  
  
  
Public Sub myhttp_Read()    
      
 Dim sBuf As String    
    
'  Vamos a leer el flujo de datos del archivo imagen:
  If Lof(MyHTTP) Then    
    Read #MyHTTP, sBuf, Lof(MyHTTP)  
    stringa = stringa & sBuf  
  End If  
  
End  
  
  
Public Sub MyHTTP_Finished()    
    
  Print "Imagen descargada !"  
  Wait    
  MyHTTP.Close    
  
' Recreamos el archivo en una carpeta:  
  File.Save("/tmp" &/ Replace(Right(ind[n], 13), "/", "_"), stringa)  
  stringa = Null  
  If n = ind.Max Then  
    n = 0  
    ind.Clear()  
    Button2.Enabled = True  
  Else  
    Inc n  
    Scarica()  
  Endif  
  
End  
  
  
Public Sub Button2_Click()   '   Permite borrar de la carpeta las imágenes que han sido descargadas.
  
 Dim s As String  
  
  For Each s In Dir("/tmp", "*.png", gb.File)  
    Kill "/tmp" &/ s  
  Next  
  
End

rolleyes


......funcionará ?    lipsrsealed
 



 
última edición por vuott el Lunes, 09 Marzo 2015, 20:00; editado 4 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extraer Las Imágenes Que Forman Un Mapa De OpenStreet 
 
Así, a primera vista, parece correcto. Pruébalo con la imagen de una pitón (perdón) y nos lo cuentas
Saludos.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extraer Las Imágenes Que Forman Un Mapa De OpenStreet 
 
shordi escribió: [Ver mensaje]
Pruébalo con la imagen de una pitón (perdón) y nos lo cuentas


...se rompería la computadora !    
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extraer Las Imágenes Que Forman Un Mapa De OpenStreet 
 
Ja y ja.

A ver si con OpenStreet al menos las cosas están más actualizadas, que en el de Google aparecen cosas del año Mari Castaña.
Y para colmo tardan en actualizar algo la tira de tiempo.  Lugares equivocados los hay ha montones.

Y es que ni diciéndoles una y otra vez que un lugar concreto no está ahí, que está en otro lugar.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extraer Las Imágenes Que Forman Un Mapa De OpenStreet 
 
vuott escribió: [Ver mensaje]
activar los siguientes componentes: gb.qt4.webkit, gb.net y gb.net.curl


Hola Vuott, en la versión de gambas que tengo instalada 3.8.2 no me deja seleccionar los componentes que dices, es mas no me deja seleccionar ningún componente, tal vez sea un bug de gambas.

por cierto sabes si es posible poner un cacho de mapa en un formulario que se centre en las coordenadas x y que estén en dos textbox ? variando el url se debe poder no?

Un saludo.
 



 
última edición por tincho el Jueves, 15 Octobre 2015, 22:55; editado 1 vez 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extraer Las Imágenes Que Forman Un Mapa De OpenStreet 
 
Mira ésto, a ver si te vale:


Link

 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extraer Las Imágenes Que Forman Un Mapa De OpenStreet 
 
shordi escribió: [Ver mensaje]
Mira ésto, a ver si te vale:

Todo bien, pero el mi ejemplo deliberadamente no contiene el componente gb.map activado.
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extraer Las Imágenes Que Forman Un Mapa De OpenStreet 
 
shordi escribió: [Ver mensaje]
Mira ésto, a ver si te vale


Re interesante este componente, gracias Shordi.
Creo que esta herramienta abre la puerta de las aplicaciones para hacer rutas de repartidores, reparadores, etc. que deban hacer una ruta diaria.
Voy a probar también adaptarlo a mi proyecto para hacer un plano de tendido eléctrico urbano, a ver como me va.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Dividir Un Mapa Y Usar Anclas Luthien_Tinu General 1 Viernes, 22 Octobre 2010, 19:39 Ver último mensaje
jsbsan
No hay nuevos mensajes Gridview Para Generar Mapa, Mini RPG (prin... sharmnight General 0 Miercoles, 06 Julio 2011, 10:22 Ver último mensaje
sharmnight
No hay nuevos mensajes Insertar Mapa En Aplicacion alan General 7 Viernes, 28 Octobre 2011, 10:56 Ver último mensaje
alan
No hay nuevos mensajes Usar Mapview Con Un Mapa Creado Por El Usu... vuott Aplicaciones/Fragmentos de Código 1 Lunes, 10 Febrero 2020, 18:20 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron