Czy istnieje jakaś biblioteka JS, która renderowałaby normalne, płaskie mapy (takie jak Leaflet) w mapę perspektywiczną taką jak ta w Internecie:
Czy ktoś widział coś, co mogłoby przekształcić dane CartoDB w reprezentację 3D, na przykład?
Czy istnieje jakaś biblioteka JS, która renderowałaby normalne, płaskie mapy (takie jak Leaflet) w mapę perspektywiczną taką jak ta w Internecie:
Czy ktoś widział coś, co mogłoby przekształcić dane CartoDB w reprezentację 3D, na przykład?
Odpowiedzi:
Może mógłbyś użyć Osmbuildings . Jest to biblioteka JavaScript do wizualizacji geometrii budynków OpenStreetMaps (lub niestandardowego GeoJSON) w perspektywie 3D.
Wykorzystuje bezpośrednio dane OpenStreetMaps. Wystarczy dodać metodę 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)
Lub możesz załadować własny GeoJSON. Wystarczy zmienić metodę loadData () na setData (geojson):
var osmb = new OSMBuildings(map).setData(geoJSON);
Twoje dane muszą mieć właściwość wysokość, a Ty możesz dynamicznie zmieniać kolor ścian i dachu:
osmb.setStyle({
wallColor:'rgba(100, 100, 250, 0.701961)',
roofColor:'rgb(220, 220, 50)',
shadows:true
});
A nawet zmień perspektywę cienia, ustawiając dzień:
osmb.setDate(new Date(2014, 3, 24, 13, 0));
setData
metody, ale set
działa! To znaczy:var osmb = new OSMBuildings(map).setData(geoJSON);
Jest to jeden z głównych przypadków użycia ViziCities (miasta 3D w przeglądarce obsługiwanej przez OpenStreetMap), chociaż warstwy danych jeszcze nie działają. Być może coś do rozważenia na przyszłość: https://github.com/robhawkes/vizicities
Oświadczenie: Jestem programistą ViziCities
Możesz użyć OSM2world do przekazania danych 2D z OpenStreetMap (map.osm) do obiektów 3D (map.obj), a następnie użyć innego konwertera ( convert_obj_three.py ), aby przekonwertować go na model JSON threejs (map.js), a następnie użyć w scenie Threejsa.
Możesz zobaczyć, jak tutaj:
Najbliższe, jakie widziałem, to praca Mike'a Bostocka .
Ma naprawdę fajną mapę, która ma swego rodzaju skośną projekcję .
Ale nic nie ułatwia. D3 zajmuje moją uwagę w kwestii ustawiania projekcji. Możesz jednak robić niesamowite rzeczy, jeśli nad tym pracujesz.
http://osm2world.org/ działa bez WebGL, ale używa Javy zamiast js.
Zaprojektowany do generowania danych budynków Openstreetmap, powinien być przystosowany również do innych danych 3D.
Wynikiem jest śliska mapa podobna do ulotki: http://maps.osm2world.org/
Cóż, dzięki CartoDB możesz zrobić coś takiego: http://andrewxhill.com/cartodb-examples/scroll-story/pluto/index.html#4
Musisz użyć tego parametru CartoCSS: {wysokość budynku: 512; }
Więcej informacji tutaj: https://github.com/CartoDB/cartodb-pluto