2012-02-28 19 views
5

Renderizar un mapa en 3D desde un dato de Openstreetmap puede ser bastante cumbersome.¿Renderiza un mapa de datos de OpenStreetMap con un motor 3D de código abierto?

Pero, ¿qué pasa si los requisitos son menos exigentes que representar cualquier ciudad del mundo en 3D?

¿Qué sucede si solo tengo que representar solo una determinada ciudad limitada por límites particulares? No debería haber muchos polígonos para renderizar, especialmente si elijo renderizar solo aquellos edificios y caminos que se ven realmente en la pantalla (he oído que esta técnica se usa en el desarrollo del juego).

Deseo lograr algo como this, pero está bien tener cuadros simples para edificios con altura aproximada y sin texturas. Entonces, básicamente solo necesito una red de carreteras basada en OSM y cuadros simples que representen edificios en 3D.

Por lo tanto, el plan podría ser las siguientes:

  • extraer datos de OSM en un archivo .osm;
  • agregue datos de "altura" a cada edificio en este archivo (manualmente);
  • renderiza la vista 3D del mapa desde el archivo .osm (requiere un analizador personalizado) con algún tipo de motor 3D.

¿Es factible este plan? ¿Hay algún motor 3D de código abierto que pueda usar/personalizar para representar un mapa OSM a partir de un archivo .osm? ¿Existen motores 3D compatibles con Linux (OpenGL?) Que puedan [posiblemente] personalizarse para generar un mapa OSM?

+0

Me interesaría un renderizador OpenGl que utilizara calles renderizadas y pudiera rotar/inclinar. ¿Tuviste éxito? – Patrick

+0

Patrick, he suspendido este proyecto, porque implica muchas cosas que hacer 'a mano'. – skanatek

Respuesta

1

Tenga en cuenta que en la mayoría de las áreas OpenStreetMap solo tiene en lotes y carreteras y otras cosas, pero no edificios individuales. Ese fue el caso la última vez que lo verifiqué, pero depende del área en la que esté interesado.

Por lo que sé, no hay una forma práctica de hacerlo, pero si solo quiere cosas simples, no debería ser tan complicado. Breve descripción:

1-Extraiga los datos del polígono de las huellas del archivo osm xml.

2 -Proyecto en un cartesiano de su elección, por ejemplo usando PROJ.4, ya que las coordenadas de osm están en lat-long.

3 -Triangular para evitar polígonos no convexos.

4 -Extruye tu polígono triangulado generando un quad para cada borde límite.

5 -Finalmente, puede insertar los modelos generados en su motor 3d favorito por ejemplo OpenSceneGraph o renderizarlos usted mismo usando OpenGL.

Después de eso, cuantas más cosas quieras agregar como texturas, detalles modelados, más se complica.

3

Es posible que desee echar un vistazo a OSM2World. Es una aplicación de conversión que lee datos OSM en varios formatos de archivo y calcula modelos 3D, teniendo en cuenta la altura, la forma del techo y los atributos materiales de los edificios, así como otros detalles. Puede mostrar la escena con su visor integrado OpenGL o exportar los modelos a formatos como .pov o .obj, el último de los cuales puede ser leído por casi todos los modeladores y motores de código abierto.

Si los edificios de la zona están bien mapeados-, escenas se ven así:

OSM2World rendering

También hay una visión general de 3D development actividades en la comunidad OpenStreetMap, mostrando varias otras herramientas.

0

Muchas ciudades tienen acceso en línea a Real Estate records, incluidas las dimensiones del edificio.

Cuestiones relacionadas