在网络上是否有任何JS库可以将普通的平面图(如Leaflet)渲染成这样的透视图:
另外,有人看到过可以将CartoDB数据转换为3D表示的东西吗?
在网络上是否有任何JS库可以将普通的平面图(如Leaflet)渲染成这样的透视图:
另外,有人看到过可以将CartoDB数据转换为3D表示的东西吗?
Answers:
也许您可以使用Osmbuildings。它是一个JavaScript库,用于将OpenStreetMaps(或自定义的GeoJSON)可视化为3D透视图。
它直接使用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));
setData
method,但是set
可以使用!它变成:var osmb = new OSMBuildings(map).setData(geoJSON);
这是ViziCities(由OpenStreetMap驱动的浏览器中的3D城市)的主要用例之一,尽管数据层目前尚不可用。也许将来要考虑的事情:https : //github.com/robhawkes/vizicities
免责声明:我是ViziCities的开发人员
您可以使用OSM2world将2D数据从OpenStreetMap(map.osm)传递到3D对象(map.obj),然后使用另一个转换器(convert_obj_three.py)将其转换为Threejs JSON模型(map.js),然后使用在Threejs场景中。
您可以在这里看到:
http://osm2world.org/无需WebGL,但使用Java而不是js。
专为输出Openstreetmap建筑物数据而设计,也应适用于其他3D数据。
输出是类似于传单的草绘地图:http : //maps.osm2world.org/
好吧,有了CartoDB,您可以执行以下操作:http: //andrewxhill.com/cartodb-examples/scroll-story/pluto/index.html#4
您必须使用以下CartoCSS参数:{building-height:512; }
更多信息在这里:https : //github.com/CartoDB/cartodb-pluto