Может быть, вы могли бы использовать Osmbuildings . Это библиотека JavaScript для визуализации OpenStreetMaps (или пользовательского GeoJSON) построения геометрии в трехмерной перспективе.
Он использует данные OpenStreetMaps напрямую. Просто добавьте метод 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)
Или вы можете загрузить свой собственный GeoJSON. Просто измените метод loadData () на setData (geojson):
var osmb = new OSMBuildings(map).setData(geoJSON);
Ваши данные должны иметь свойство height, и вы можете динамически изменять цвет стен и крыши:
osmb.setStyle({
wallColor:'rgba(100, 100, 250, 0.701961)',
roofColor:'rgb(220, 220, 50)',
shadows:true
});
И даже измените перспективу тени, установив дневное время:
osmb.setDate(new Date(2014, 3, 24, 13, 0));