¿Existe alguna biblioteca JS que pueda representar mapas normales y planos (como Leaflet) en un mapa en perspectiva como este, en la web:
Además, ¿alguien ha visto algo que pueda convertir los datos de CartoDB en representación 3D, como este?
¿Existe alguna biblioteca JS que pueda representar mapas normales y planos (como Leaflet) en un mapa en perspectiva como este, en la web:
Además, ¿alguien ha visto algo que pueda convertir los datos de CartoDB en representación 3D, como este?
Respuestas:
Quizás podrías usar Osmbuildings . Es una biblioteca de JavaScript para visualizar la geometría de construcción OpenStreetMaps (o GeoJSON personalizada) en una perspectiva 3D.
Utiliza los datos de OpenStreetMaps directamente. Simplemente agregue el método loadData ():
var map = new L.Map('map').setView([52.50440, 13.33522], 17);
var osmb = new OSMBuildings(map).loadData();
L.control.layers({}, { Buildings:osmb }).addTo(map); // add to layer switcher (optional)
O bien, puede cargar su propio GeoJSON. Simplemente cambie el método loadData () a setData (geojson):
var osmb = new OSMBuildings(map).setData(geoJSON);
Sus datos deben tener una propiedad de altura, y puede cambiar el color de la pared y el techo de forma dinámica:
osmb.setStyle({
wallColor:'rgba(100, 100, 250, 0.701961)',
roofColor:'rgb(220, 220, 50)',
shadows:true
});
E incluso cambie la perspectiva de la sombra configurando el día:
osmb.setDate(new Date(2014, 3, 24, 13, 0));
setData
método, ¡pero set
funciona! Se ajusta se convierte en:var osmb = new OSMBuildings(map).setData(geoJSON);
Este es uno de los casos de uso principales para ViziCities (ciudades 3D en el navegador con tecnología de OpenStreetMap), aunque las capas de datos todavía no funcionan. Quizás algo a tener en cuenta para el futuro: https://github.com/robhawkes/vizicities
Descargo de responsabilidad: soy el desarrollador de ViziCities
Puede usar OSM2world para pasar datos 2D desde OpenStreetMap (map.osm) a objetos 3D (map.obj), luego usar otro convertidor ( convert_obj_three.py ) para convertirlo en un modelo JSON de tres js (map.js), y luego usar en una escena de tres js.
Puedes ver cómo aquí:
Lo más cercano que he visto es el trabajo de Mike Bostock .
Tiene un mapa realmente genial que tiene una especie de proyección oblicua .
Pero no hay nada que lo haga fácil. D3 hace mi cabeza con respecto a la configuración de proyecciones. Sin embargo, puedes hacer cosas increíbles si trabajas en ello.
http://osm2world.org/ funciona sin WebGL, pero usa Java en lugar de js.
Diseñado para la salida de datos de edificios de Openstreetmap, también debería ser adoptable para otros datos 3D.
El resultado es un mapa resbaladizo similar al folleto: http://maps.osm2world.org/
Bueno, con CartoDB puedes hacer algo como esto http://andrewxhill.com/cartodb-examples/scroll-story/pluto/index.html#4
Tiene que usar este parámetro CartoCSS: {building-height: 512; }
Más información aquí: https://github.com/CartoDB/cartodb-pluto