Esistono librerie JS là fuori che renderebbero normali le mappe piatte (come Leaflet) in una mappa prospettica come questa, sul web:
Inoltre, qualcuno ha visto qualcosa che potesse trasformare i dati CartoDB in una rappresentazione 3D, come questa?
Esistono librerie JS là fuori che renderebbero normali le mappe piatte (come Leaflet) in una mappa prospettica come questa, sul web:
Inoltre, qualcuno ha visto qualcosa che potesse trasformare i dati CartoDB in una rappresentazione 3D, come questa?
Risposte:
Forse potresti usare Osmbuildings . È una libreria JavaScript per visualizzare OpenStreetMaps (o GeoJSON personalizzato) costruendo la geometria in una prospettiva 3D.
Utilizza direttamente i dati OpenStreetMaps. Aggiungi il metodo 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)
Oppure puoi caricare il tuo GeoJSON. Basta cambiare il metodo loadData () in setData (geojson):
var osmb = new OSMBuildings(map).setData(geoJSON);
I tuoi dati devono avere una proprietà altezza e puoi cambiare dinamicamente il colore del muro e del tetto:
osmb.setStyle({
wallColor:'rgba(100, 100, 250, 0.701961)',
roofColor:'rgb(220, 220, 50)',
shadows:true
});
E persino cambiare la prospettiva dell'ombra impostando il giorno:
osmb.setDate(new Date(2014, 3, 24, 13, 0));
setData
metodo, ma set
funziona! Diventa così:var osmb = new OSMBuildings(map).setData(geoJSON);
Questo è uno dei principali casi d'uso per ViziCities (città 3D nel browser fornite da OpenStreetMap), sebbene i livelli di dati non funzionino ancora. Forse qualcosa da considerare per il futuro: https://github.com/robhawkes/vizicities
Disclaimer: sono lo sviluppatore di ViziCities
È possibile utilizzare OSM2world per passare i dati 2D da OpenStreetMap (map.osm) a oggetti 3D (map.obj), quindi utilizzare un altro convertitore ( convert_obj_three.py ) per convertirli in un modello JSON threejs (map.js), quindi utilizzare in una scena trejs.
Puoi vedere come qui:
Il più vicino che ho visto è il lavoro di Mike Bostock .
Ha una mappa davvero interessante che ha una sorta di proiezione obliqua .
Ma non c'è nulla che lo renda facile. D3 fa la testa per quanto riguarda l'impostazione delle proiezioni. Puoi fare cose fantastiche se ci lavori.
http://osm2world.org/ funziona senza WebGL, ma utilizza Java invece di js.
Progettato per l'output di dati di edifici di Openstreetmap, dovrebbe essere adottabile anche per altri dati 3D.
L'output è una mappa scivolosa simile all'opuscolo: http://maps.osm2world.org/
Bene, con CartoDB puoi fare qualcosa del genere http://andrewxhill.com/cartodb-examples/scroll-story/pluto/index.html#4
Devi usare questo parametro CartoCSS: {building-height: 512; }
Maggiori informazioni qui: https://github.com/CartoDB/cartodb-pluto