20070701

CTT del CaFeLUG

Ayer fue la CTT del CaFeLUG. Hay una cosa que tengo que tener en cuenta para la próxima vez, estando con gripa, tengo que releer varias veces las cosas que haga.

En la presentación, habían dos cosas que faltaron y que las demoré en explicar porque pensaba que las había puesto al final, que eran el no usar el número de la señal y usar el nombre. Principalmente la razón para eso es que, por ejemplo, el SIGUSR1 en FreeBSD es el número 30 y en GNU/Linux es la 10.

Igualmente, más allá de las dos o tres pantallas que borré sin darme cuenta, tenía varios typos. Por suerte estaba el Perro que tenía ganas de hablar de su actual cruzada (no OOXML).

Hoy tenía todos los síntomas de una gripa (fiebre, moco, dolores varios y estornudos varios). Seguramente que mañana ya voy a estar mejor (por la tarde ya no tenía fiebre y ahora ya no que queda más que el moco y un par de estornudos cada tanto).

Igualmente, hay algo que si me sirvió de este día, y fue que me puse a buscar en la FAQ de PostGIS (un módulo de GIS para PostgreSQL). Y veo que en la misma FAQ hay lo que yo quiero para mi "buscón de medios de transporte" (todavía no tiene un nombre).

La idea que tengo ahora es:


  • usar KAME (o como se llame), que es un archivo donde tienen cargadas todas las calles de buenos aires y sus cordenadas (según google maps)

  • cargar los datos de las calles en la DB

  • cargar el recorrido de los medios de transporte correspondientes en la DB (solo el recorrido de calles, no por coordenadas)



La búsqueda sería:

  • punto O y D (Origen y Destino) en coordenadas

  • buscar los medios de transporte de no más de X (definido por el usuario) a la redonda del punto D y que el origen sea no más de X del punto O. Esto sería un solo query (pesado), pero uno solo.



Creo que, a grandes razgos, ya estaría el esqueleto. Me falta ponerme a estudiar un poco de PostgreSQL + GIS y ver que resulta

2 comentarios:

Cewar dijo...

Ante todo buenos dias, yo estoy intentando hacer algo similar pero si por coordinadas, vos tenes idea de donde se puede conseguir esa db?

nnss dijo...

Últimamente estoy pensando en desechar esa idea. El esfuerzo que hay que hacer es mucho.

En realidad las coordenadas son necesarias para ir a un lugar común entre todos los objetos que intervienen (medios de transporte, calles, dirección del usuario y el mapa). Pero se puede usar como coordenadas solamente las calles, con lo que te evitas de tener algo intermedio extra.
La base de datos la puedes descargar de la página (www.postgresql.org y el módulo de postgis (si tienes alguna distribución de GNU/Linux busca en el repositorio de paquetes a instalar que seguramente está disponible).

Lo único que si usas el GIS+PostgreSQL vas a tener que hacerlo obligatoriamente por coordinadas decimales. El postgis lo que hace es darte un campo para que vos pongas un punto en el espacio (u otras figuras básica) y luego puedes buscar puntos por aproximación a un punto dado.

Por un lado el sistema gana complejidad, pero mientras haya un mapa (por ejemplo dentro de google-maps), vas a poder migrar el sistema a cualquier ciudad. Si usas solamente las calles como coordenadas, tienes que tener en cuenta que las búsquedas van a ser mayormente por texto (con la lentitud que esto tiene).