Partiendo del servicio de Google Static Maps que nos ofrece la posibilidad de linkar a imágenes estáticas de GoogleMaps hice un script para generar un vídeo de aproximación a una localización cualquiera del mapa mundi.

Descargamos las 20 imágenes que brinda GoogleMaps correspondientes a 20 niveles de zoom.

20 imágenes20 imágenes

for n in `seq 1 20`; do nombre=`printf %0.3d00 $n`;wget "http://maps.google.com/maps/api/staticmap?center=Calle,0,Ciudad,Pais&zoom=$n&size=640x480&maptype=satellite&sensor=true" -O "satelite_"$nombre".png"; done

Esto produciría una serie de 20 JPGs para cada una de las escalas que sirve GoogleMaps, (satelite_00100.jpg, satelite_00200.jpg, satelite_00300.jpg …satelite_02000.jpg). Ahora interpolamos generando mediante un zoom unas 14 imágenes (elección arbitraria) entre fotograma y fotograma.

280 imágenes interpolando280 imágenes interpolando

for seq in `seq 100 100 2000`; do aumentar=104; for f in `seq 0 13`; do convert "satelite_$(printf %0.5d $seq).png" -resize "$aumentar"% -gravity center -extent 640x480 "fotograma_0$(printf %0.4d $(expr $f + $seq)).jpg"; echo "fotograma $f de satelite_$(printf %0.5d $seq).png, al $aumentar %"; aumentar=$(echo "scale=2; $aumentar + 7.2" | bc ); done; done

A continuación montamos todo en un vídeo con MELT, aplicando un filtro frei0r.vertigo al vuelo y transición al finalizar la secuencia.

melt colour:black out=310 -track -group out=.1 fotograma_*jpg out=30 fotograma_02013.jpg -group -filter frei0r.vertigo frei0r.vertigo.Zoomrate=0.1 -transition luma reverse=1 in=260 out=310 -consumer avformat:salida.avi