Leaflet, CartoDB haritalarında 3D perspektif?


12

Web'de normal, düz haritaları (Leaflet gibi) bu gibi bir perspektif haritasına dönüştürecek herhangi bir JS kütüphanesi var mı:

resim açıklamasını buraya girin

Ayrıca, CartoDB verilerini 3D gösterime dönüştürebilecek herhangi bir şey gördü, böyle mi?


1
Cartodb ile entegrasyon konusunda emin değilim, ancak son zamanlarda three.js kütüphanesini kullanarak QGIS'ten 3D haritalar yapma hakkında bu gönderiyi gördüm . Buna bir göz atmak isteyebilirsiniz.
— RyanKDalton

2
Ayrıca bakınız: Three.js + broşür = 3D haritalar? StackOverflow
— RyanKDalton


1
Belki de bu görselleştirmeyi yararlı bulursunuz
— javisantana

Yanıtlar:


7

Belki Osmbuildings'i kullanabilirsiniz . OpenStreetMaps (veya özel GeoJSON) bina geometrisini 3B perspektifte görselleştirmek için bir JavaScript kütüphanesi.

OSMbuildingJS

OpenStreetMaps verilerini doğrudan kullanır. LoadData () yöntemini eklemeniz yeterlidir:

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)

Veya kendi GeoJSON'unuzu yükleyebilirsiniz. LoadData () yöntemini setData (geojson) olarak değiştirmeniz yeterlidir:

var osmb = new OSMBuildings(map).setData(geoJSON);

Verileriniz bir height özelliğine sahip olmalıdır ve duvar ve çatı rengini dinamik olarak değiştirebilirsiniz:

osmb.setStyle({ 
     wallColor:'rgba(100, 100, 250, 0.701961)', 
     roofColor:'rgb(220, 220, 50)', 
     shadows:true 
});

Ve hatta gündüz ayarlayarak gölge perspektifini değiştirin:

osmb.setDate(new Date(2014, 3, 24, 13, 0));

Mevcut OSM Binaları sürümü (0.2.2b) setDatayöntemi desteklemez , ancak setçalışır! Bu tjus olur:var osmb = new OSMBuildings(map).setData(geoJSON);
— bradypus

4

Bu, veri katmanları henüz çalışmıyor olsa da, ViziCities (tarayıcıdaki OpenStreetMap tarafından desteklenen 3D şehirler) için birincil kullanım durumlarından biridir. Belki de gelecek için dikkate alınması gereken bir şey: https://github.com/robhawkes/vizicities

Feragatname: ViziCities'in geliştiricisiyim


1
Harika bir proje! Ayrıca, bunun bağlı olduğunuz bir proje olduğu oldukça açık olsa da, bunu biraz daha açık hale getirmek isteyebilirsiniz (açık kaynak olsa bile).
— blah238

Teşekkürler, ancak WebGL olmayan bir çözüm arıyorum.
— Mart'ta knutole

1
Endişeye gerek yok, sadece size kulak vermek istedim.
— Robin Hawkes

Bu versiyonun grafikleri veya herhangi bir geliştirilmiş versiyonu var mı?
— joker21

2

OSM2world'ü kullanarak 2B verileri OpenStreetMap'ten (map.osm) 3B nesnelere (map.obj) geçirmek için kullanabilir, ardından başka bir dönüştürücü ( convert_obj_three.py ) kullanarak üç boyutlu bir JSON modeline (map.js) dönüştürebilirsiniz. Üçlü sahnede.

Nasıl yapılacağını buradan görebilirsiniz:

https://www.youtube.com/watch?v=S6LbKH6NnZU


Çok teşekkürler. Ancak bu WebGL gerektirir, değil mi?
— Mart'ta knutole

1
Threejs WebGL'den yararlanan bir javascript kütüphanesi / api. Ancak kodda sadece iki libs eklemeniz gerekir: three.js ve OrbitControls.js (bu kamera yörüngesini yönetmek içindir).
— sigon

1
ve evet, threejs yalnızca WebGL tarafından desteklenen tarayıcılarda çalışır.
— sigon


1

http://osm2world.org/ WebGL olmadan çalışır, ancak js yerine Java kullanır.

Openstreetmap bina verilerinin çıktısı için tasarlandığından, diğer 3D veriler için de kabul edilebilir olmalıdır.

Çıktı broşürüne benzer kaygan bir haritadır: http://maps.osm2world.org/


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.