Vous pourriez peut-être utiliser Osmbuildings . C'est une bibliothèque JavaScript pour visualiser la géométrie du bâtiment OpenStreetMaps (ou GeoJSON personnalisé) dans une perspective 3D.
Il utilise directement les données OpenStreetMaps. Ajoutez simplement la méthode 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)
Ou, vous pouvez charger votre propre GeoJSON. Modifiez simplement la méthode loadData () en setData (geojson):
var osmb = new OSMBuildings(map).setData(geoJSON);
Vos données doivent avoir une propriété de hauteur et vous pouvez modifier la couleur du mur et du toit de manière dynamique:
osmb.setStyle({
wallColor:'rgba(100, 100, 250, 0.701961)',
roofColor:'rgb(220, 220, 50)',
shadows:true
});
Et changez même la perspective de l'ombre en définissant le jour:
osmb.setDate(new Date(2014, 3, 24, 13, 0));