使用开源3D引擎从Openstreetmap数据渲染地图?

ska*_*tek 6 3d openstreetmap

从Openstreetmap数据渲染3D地图可能非常麻烦.

但是,如果要求的要求低于渲染世界上任何城市的3D要求呢?

如果我只需要渲染某个受特定边界限制的城市怎么办?不应该渲染很多多边形,特别是如果我选择只渲染那些在屏幕上实际看到的建筑物和道路(我听说这种技术用于游戏开发).

我希望能够实现这样的目标,但是对于具有近似高度且没有纹理的建筑物来说,只需要简单的盒子就可以了.所以,基本上我只需要一个基于OSM的道路网络和用3D表示建筑物的简单框.

所以,计划可能如下:

  • 将OSM数据提取到.osm文件中;
  • 将"高度"数据添加到此文件中的每个建筑物(手动);
  • 使用某种3D引擎从.osm文件(需要自定义解析器)渲染地图的3D视图.

这个计划可行吗?是否有任何开源3D引擎可以使用/自定义从.osm文件渲染OSM地图?是否存在可以[可能]自定义以呈现OSM地图的任何Linux兼容(OpenGL?)3D引擎?

dav*_*dnr 1

请注意,在大多数地区,OpenStreetMap 仅包含地块、道路和其他内容,而不包含单个建筑物。我上次检查时就是这种情况,但这取决于您感兴趣的领域。

据我所知,没有现成的方法可以做到这一点,但如果您只想要简单的事情,那么它不应该那么复杂。简要描述;简介:

1 - 从 osm xml 文件中提取足迹多边形数据。

2 - 投影到您选择的笛卡尔坐标系中,例如使用PROJ.4,因为 osm 坐标为经纬度。

3 - 进行三角测量以避免非凸多边形。

4 - 挤出三角多边形,为每个边界边生成一个四边形。

5 -最后,您可以将生成的模型插入您最喜欢的 3d 引擎(例如OpenSceneGraph)或使用 OpenGL 自行渲染它们。

之后,您想要添加的东西(例如纹理、建模细节)越多,它就会变得越复杂。