Posts Tagged ‘mapas’

Simulación con Ríos

Monday, May 17th, 2010

Open Street Maps sólo define las orillas de los ríos, lagos, mares y demás masas de agua. Esto supone un problema a la hora de simular, pues no sólo las orillas han de estar inundadas, si no el río entero. De este problema ya habíamos hablado en una entrada anterior, y ahora que ya está solucionado lo hemos incluido en las simulaciones.

Como muestra una captura de pantalla de una simulación cuya área incluye un trozo del gran Mississippi.

Río relleno de agua en simulación

OSM: Ríos, Parques y Mares

Wednesday, May 5th, 2010

Después de mucho tiempo invertido y de reescribir la clase Osm a fin de poder pintar el interior de parques, ríos y mares, y casi a punto de querer reescribir HexagonalGrid y entrar en una espiral de destrucción y muerte (por suerte Alex me hizo entrar en razón). Aquí está prácticamente resuelto el problema de rellenar figuras geométricas.

Básicamente la solución estaba en trabajar únicamente con las coordenadas (todas ellas, las que cabían dentro de mi grid y las que no) a fin de poder saber toda la información de los bordes de las figuras.

Por ejemplo, si tenía que dibujar un río pero en mi grid sólo estaba una orilla, no pasaba nada, porque Osm (muy listo él) te da más información que la que tú le pides. Aunque sólo le pidas que te de la información de un trozo de mapa, te da toda la información de los alrededores, que te harán falta para saber que margen del río tienes que pintar. Y esta información aparece reflejada en la seccion <member> al final del xml.

También he usado funciones básicas de geometría computacional, para averiguar si un punto esta dentro o no de un polígono.

Seguramente vendrá en algún lado de la documentación de OSM, pero es que a mí me gusta darme chocazos con las paredes. Y finalmente, a base de iterar sobre el error, lo conseguí. (more…)

OSM: Pintando Puentes

Thursday, March 11th, 2010

Seguimos progresando a la hora de representar, en nuestra malla hexagonal, la información extraída de OSM. Hemos mejorado el visor para que nos muestre una vista real del puente (ahora estan en la dirección correcta). También hemos tenido en cuenta la prioridad de las carreteras a la hora de representar nuestra información, siendo las carreteras más importantes las que queden pintadas. Por ejemplo, si una carretera pasa por encima de un río (el puente de la imagen), se pintará la autopista (azul) por encima de otras carreteras menos importantes u obstáculos (como el río que pasa debajo del puente).

Como se puede ver, si aumentamos mucho el tamaño del hexágono, perdemos mucha información, llegando a interrumpirse las carreteras.

OSM: Contratiempos

Monday, March 8th, 2010

Curioso contratiempo el de la rotación del escenario a la hora de representarlo con JAVA 2D, ¿cual será el problema? Estamos recorriendo mal la matriz obviamente.

La solución próximamente.

OSM: Pintando Carreteras

Monday, March 8th, 2010

Por fin hemos conseguido pintar (relativamente bien) las carreteras sobre la malla hexagonal. Trabajo ha costado, más que nada porque las adyacencias de una malla hexagonal no son las de una malla cuadrada. Sí, eso era evidente, pero cambia de filas pares a impares, y confundiendo los índices…

Bueno, finalmente sólo queda aproximar mejor las diagonales, porque actualmente no aproxima nada, pero al menos es conexo.

Aún falta por mostrar una ventana con una leyenda que indique qué significan los colores, puesto que además de carreteras también se muestran diferentes puntos de intereres, como aeropuertos, hospitales…

Toda la información referente a cómo lo hemos hecho se encuentra en el código dentro de los paquetes osm y algunas clases estáticas de HexagonalGrid.