Friday, June 8, 2012

Problema: A qué hora salir de casa para no pillar atasco de camino altrabajo?

Planteamiento

  • Tengo la suerte de que la página de la DGT publica las imágenes de trafico de todos las carreteras que uso para llegar al trabajo
  • La idea es usar estas las imágenes de las cámaras para evaluar el tráfico
  • La primera parte del proyecto consistirá en guardar las imáges de las cámaras de tráfico de las carreteras por las que paso y luego poderlas visionar de manera que pueda ver fácilmente:

Implementacion


hg clone https://albaregar@bitbucket.org/albaregar/trafficjam

Servidor de images con Django

  • Crear una aplicacion nueva: python manage.py startapp image_server
  • Para probar añadir al fichero view.py añadir el siguiente método
from django.http import HttpResponse
def get_image_test(request):
   filename = 'trafico.jpg'
   image_file = open('/home/boundingbox/webapps/rpc/myproject/image_server/%s'%filename,'rb')
   file_content = image_file.read()
   response = HttpResponse(file_content, mimetype='image/jpeg')
   response['Content-Disposition'] = 'inline; filename=%s'%filename
   return response
  • Para probar añadir al fichero url.py la siguiente línea
(r'^imageTest/$', 'myproject.image_server.views.get_image_test')
 
  • Para acceder a la imagen:
A) http://rpc.boundingbox.es/imageTest/
B)<html><head<title>Test image server</title></head><body><img src="http://rpc.boundingbox.es/imageTest/"></body></html>
  • Probar una función que devuelva una imagen dado el año, mes, dia. Añadir la siguiente linea a url.py
(r'^imageGet/(?P<year>\d\d)/(?P<month>\d\d)/(?P<day>\d\d)/$','myproject.image_server.views.get_image')
  • Añadir la siguiente función a views.py
def get_image(request, year, month, day):
    html = """
<html>
<body>Anio:%s Mes:%s Dia:%s</body>
</html>"""%(year, month, day)

    return HttpResponse(html)
  • Para comprobar que funciona
http://rpc.boundingbox.es/imageGet/10/09/20/

Cómo encontrar las cámaras

  1. Usar la página de la DGT para saber en qué carreteras hay cámaras y cúantas hay. El problema es que en esta página las cámaras se identifican por carretera y punto kilométrico lo cual hace un poco difícil situarlas en un mapa

  2. Usar la página de la guía repsol, la búsqueda por punto kilométrico y activando la capa de cámaras para poder localizar mejor la situación de las cámaras y ver si la cámara nos sirve. Usar el buscador de carreteras

  3. Usar google maps para sacar la posición GPS

Cómo servir ficheros css y javascript desde dentro de una aplicación de Django

Si la eficiencia no es una prioridad existe un modo sencillo que me viene de perlas. Todo viene explicado en este link.