OSM: Ríos, Parques y Mares

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í.

Aquí tenéis los resultados:

Ejemplos de parques:

Ejemplo de dos parques rellenos

Ejemplo de parques junto a un río:

Pero no todo es perfecto… por alguna razón (supongo que habrá que investigar más en OSM wiki) para los mares esto no termina de funcionar del todo bien.

No se rellena nada de bienSe puede apreciar que en vez de rellenar toda la parte superior, traza una línea desde el punto a tierra más alejado hasta el otro extremo del mapa (más a la izquierda). Bueno, seguiremos iterando…

Comparte este post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • TwitThis
  • Meneame
  • BarraPunto
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Digg
  • email

Tags: , , ,

One Response to “OSM: Ríos, Parques y Mares”

  1. Simulación de Catástrofes» Blog Archive » Simulación con Ríos Says:

    [...] 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 [...]

Leave a Reply