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?
javascript
leaflet
3d
carto
knutole
źródło
źródło
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 ():
Lub możesz załadować własny GeoJSON. Wystarczy zmienić metodę loadData () na setData (geojson):
Twoje dane muszą mieć właściwość wysokość, a Ty możesz dynamicznie zmieniać kolor ścian i dachu:
A nawet zmień perspektywę cienia, ustawiając dzień:
źródło
setData
metody, aleset
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
źródło
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:
https://www.youtube.com/watch?v=S6LbKH6NnZU
źródło
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.
źródło
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/
źródło
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
źródło