Tag Archives: engineering

Un avance del progreso sobre teselas vectoriales del Grupo de Trabajo de Ingeniería

El Grupo de Trabajo de Ingeniería de la Fundación OpenStreetMap tiene una actualización sobre el esfuerzo para crear teselas vectoriales para openstreetmap.org. Siga leyendo para saber por qué este trabajo es importante, qué se ha hecho hasta ahora y cómo se están incorporando los comentarios de la comunidad, así como los detalles técnicos para aquellos que quieran saber más.

Antecedentes

Actualmente, el sitio web openstreetmap.org ofrece teselas rasterizadas, que son teselas de imágenes formadas por píxeles; piense en una imagen descargada de parte de un mapa. Pero el esfuerzo ha comenzado a crear teselas vectoriales para el sitio, lo que ayudará a mejorar la apariencia y el funcionamiento del mapa. Puede leer más sobre los antecedentes del proyecto aquí.

Las teselas vectoriales sirven mapas como vectores: puntos, líneas y polígonos. Almacenan datos geográficos (como los que componen OpenStreetMap) en un formato que permite un estilo dinámico y la interactividad. Para los usuarios, las teselas vectoriales significarán un estilo de mapa nuevo y moderno con un zoom perfecto en openstreetmap.org, el mapa se puede actualizar más rápidamente cuando cambian los datos y debería funcionar mejor para los usuarios.

De cara al futuro, la parte más interesante es lo que este proyecto de teselas vectoriales facilitará a los voluntarios y usuarios de teselas: mapas 3D, combinación y comparación de datos más eficiente e integración de otros conjuntos de datos, estilos temáticos, mapas multilingües, diferentes vistas para los límites administrativos, puntos de interés interactivos, mapas más accesibles para usuarios con discapacidad visual y seguramente muchas otras ideas que a nadie se le han ocurrido todavía. Quizás recuerdes que muchos de estos han sido intereses a largo plazo para las personas de la comunidad OSM.

El plan

El objetivo del proyecto de teselas vectoriales es proporcionar una configuración de teselas vectoriales que pueda funcionar para openstreetmap.org, es decir, un sitio de mapas base complejo y mundial con una gran demanda por parte de usuarios y servicios de todo el mundo, donde los datos subyacentes al mapa cambian todo el tiempo.

O, para decirlo técnicamente, crear una configuración para un mapa base complejo a nivel mundial bajo una carga elevada que requiere actualizaciones minuciosas.

Paul Norman lidera el proyecto de teselas vectoriales.

Está trabajando para ampliar su proyecto Tilekiln que genera teselas vectoriales a partir de una base de datos PostgreSQL (como la de OpenStreetMap), haciendo uso del esquema Shortbread, que es un formato de datos para nombrar capas y propiedades dentro de un mosaico vectorial, y mejorando Themepark, lo que permite agregar datos de OSM a una base de datos de Postgres.

El trabajo se divide en tres pasos: 

1. Primera ronda de mejoras de Tilekiln y mejoras de Shortbread y Themepark

2. Mejoras de paralelismo

3. Shortbread disponible públicamente en producción.

Los dos primeros pasos casi están terminados. Tilekiln ahora genera teselas en paralelo, lo que hace que sea práctico generar teselas para todo el mundo. El siguiente paso es iniciar el despliegue en el hardware de la OSMF para prepararse para la producción.  

Detalles técnicos del paso 1

Para aquellos interesados ​​en los detalles técnicos de en qué se está trabajando, hay cinco componentes principales del primer paso anterior.

        1.        Empaquetamiento automatizado de Tilekiln

        2.        Las métricas de Tilekiln se publican con un exportador de Prometheus

        3.        Shortbread Themepark revisado

        4.        Un servidor de demostración que se ejecuta con actualizaciones minuciosas de teselas de Shortbread y renderiza teselas bajo demanda

        5.        Demo mostrada a la comunidad

Los puntos 1 y 2 están completos sin necesidad de mayor discusión. Para el punto 3, Paul descubrió que la implementación de osm2pgsql Themepark Shortbread necesitaba más trabajo de lo previsto ya que le faltaba una capa y tenía algunos problemas.  

Los puntos 4 y 5 están completos. El servidor de demostración de Paul corre con actualizaciones minuciosas y los requisitos de hardware son más modestos de lo esperado.  

La comunidad también ha estado brindando comentarios útiles, como en la publicación de Paul en el Foro de la Comunidad OSM.

La comunidad ofreció muchas sugerencias, algunas de las cuales ya han sido incorporadas. Los problemas restantes que están dentro del alcance de la comunidad son: Las líneas curvas se muestran como irregulares y las teselas vectoriales son demasiado grandes.

El problema de las líneas irregulares se debe a la forma en que se representan las curvas suaves en las teselas vectoriales. Se ha abordado en su mayor parte, pero se espera que surjan problemas similares en el futuro. Se ha establecido una escala objetivo equivalente a la escala mínima de la capa de tesela estándar. Se puede llegar a una escala aún más baja, pero es posible que comiencen a aparecer artefactos.

El tamaño de las teselas vectoriales seguirá siendo un tema que requerirá trabajo continuo, pero las teselas actuales son particularmente grandes. Desde esta parte de la prueba se han realizado algunos cambios que reducen el tamaño a la mitad. La optimización del tamaño de las teselas será un tema que requerirá mas trabajo, ya que el tamaño de las teselas es el factor más importante en la experiencia del usuario.

Las teselas que se están produciendo son utilizables, pero aún queda trabajo por hacer. Ahora que el trabajo de paralelismo está completo, es posible generar grandes conjuntos de teselas para realizar pruebas, por lo que Paul volverá a trabajar en las definiciones de teselas para mejorar su tamaño y solucionar algunos problemas restantes, pero las teselas actuales son utilizables.

Antecedentes de las herramientas utilizadas

Aquí hay información sobre las diversas herramientas utilizadas para este proyecto.

Tilekiln es un software escrito por Paul Norman para generar teselas vectoriales a partir de una base de datos PostgreSQL. Las alternativas son martin (o tal vez t_rex). Tilekiln está en un nuevo desarrollo, aunque utiliza muchas características estándar de PostgreSQL para generar los datos de teselas vectoriales. La mayoría de los mapas basados ​​en OSM (incluido osm-carto en osm.org) se generan a partir de consultas de bases de datos SQL desde una base de datos PostgreSQL. Tilekiln genera teselas vectoriales a partir de consultas similares. Tilekiln es nuevo.

Themepark es parte del conjunto de herramientas osm2pgsql, que permite agregar datos OSM a postgres y compartir esos pasos de procesamiento entre otros proyectos. Muchos estilos de mapas OSM basados ​​en PostgreSQL (como osm-carto) usan osm2pgsql  

osm2pgsql ha existido durante más de 15 años en OSM y se utiliza en muchos lugares. Aunque Paul ha contribuido con código, no es el desarrollador principal. osm2pgsql se ha vuelto más avanzado y mejor en los últimos años. Parte del poder es el preprocesamiento de los datos, y Themepark es un intento de facilitar estos pasos de preprocesamiento.

Shortbread es un “esquema de tesela vectorial” creado por Geofabrik. Es un formato de datos sobre cómo nombrar capas y propiedades dentro de una tesela vectorial.

Esta publicación contiene contribuciones de Adam Hoyle, Mikel Maron, Amanda McCann, Paul Norman y Andrew Wiseman.

La Fundación OpenStreetMap es una organización sin fines de lucro, formada para apoyar el Proyecto OpenStreetMap. Se dedica a fomentar el crecimiento, desarrollo y distribución de datos geoespaciales gratuitos para que cualquiera pueda usarlos y compartirlos. La Fundación OpenStreetMap posee y mantiene la infraestructura del proyecto OpenStreetMap, está financiada por cuotas de membresía y donaciones, y organiza la conferencia anual internacional State of the Map . Nuestros grupos de trabajo voluntarios y el pequeño personal central trabajan para apoyar el proyecto OpenStreetMap. Únete a la Fundación OpenStreetMap por solo £ 15 al año o de forma gratuita si eres un colaborador activo de OpenStreetMap.