Zh-hans:基本三维建筑

From OpenStreetMap Wiki
Jump to navigation Jump to search

本页描述建筑物基本3D属性的标签。有关高级3D标注提案,请参阅F3DB

以下标注方法是Garching第二次3D研讨会的结果,其中大多数3D开发人员都同意在其程序中支持统一的标签子集。基本上,我们使用两种类型的区域来描述建筑物的体积:1)复合建筑物主体的建筑物轮廓,以及2)用于描述建筑物各部分的建筑物部分,尤其是具有不同高度或其他属性的建筑物。

如何绘制

建筑物轮廓

两个building:part=*区域(绿色)在建筑区域(红色)内

建筑轮廓线表示建筑物各个部分覆盖的土地区域。在大多数情况下,轮廓线也可以视为建筑物的投影。这是用building=*标记的封闭路径或多边形。

建筑物属性(例如地址,名称,总高度,经营者等)必须在建筑物轮廓上标记。

建筑轮廓为2D渲染软件(例如Mapnik)和其他对3D建模不感兴趣的数据使用者提供了向后兼容性。 当建筑物具有任何building:part=*区域时,将不考虑建筑物轮廓进行3D渲染。

建筑物部分

建筑物中具有不同物理特性(高度,颜色等)的部分通常是通过在建筑物轮廓内绘制带有building:part=*标签的区域来建模的。building:part=*标签的值通常为yes,但可以是任何building=*值。

整个建筑物轮廓由building:part=*区域填充,并标记了它们各自的高度和其他属性。根据建筑物的不同,这些区域可能彼此重叠或分离。尽管二维投影的路径可能(且经常需要)重叠,但请避免重叠以此表示的三维体积——尤其不要重叠相同路径的体积。

有关建筑物属性标签的详细信息,请参见以下部分,该属性标签通常应用于用building:part=*标记的区域。

标记有building:part=*的区域主要用于3D渲染。2D渲染器将忽略下一节中描述的建筑物属性标签。

提示:重叠这样的形状可能很难选择。在JOSM中,在按住“ Alt”键的同时单击以在重叠的对象之间循环并进行所需的选择。(from https://blog.mapbox.com)

建筑物关系

如果建筑物的至少一部分悬空在建筑物的投影上方,或者建筑物的结构复杂有很多部分,则可以使用type=building关系对建筑物轮廓和所有建筑物部分一起组合。否则,无需创建type=building关系,即如上所述简单地将所有建筑物部件放置在建筑物轮廓内。

如果某建筑物存在type=building关系,则必须将所有建筑物部件列为具有Role part角色的关系成员。必须以角色Role outline列出建筑物轮廓线。在存在type=building关系的情况下,可以相对于建筑物轮廓以任何可能的方式(内部,外部,相交,接触)定位建筑物的各个部分。

如果没有type=building关系,则应用程序将建筑物轮廓区域内的所有建筑部分都视为该建筑物的一部分。

标注建筑物轮廓与部分

以下标签可用于建筑物轮廓和建筑物部分。

高度与层数

层数和高度标注示意图
关键字 注解
height=* 与地面接触的最低位置与建筑物屋顶顶部之间的距离,不包括安装在屋顶上的天线,尖塔和其他设备。
min_height=* 建筑物下表面的大概高度。

请注意,当使用min_height时,height仍被定义为从地面到建筑物顶部的距离。 因此,具有3米高的连廊(连廊的底部位于离地面10米的位置)应有min_height=10, height=13标签。

building:levels=* 建筑物在地面以上的层数(不包括屋顶中的楼层),以供对建筑物进行纹理处理。

如果标注新建筑物,请试着标注height,仅使用building:levels=*作为高度标签的补充!

building:min_level=* 类似于min_height的建筑物部分中跳过的楼层。

屋顶

屋顶形状

您可以使用常见屋顶类型的目录来表征建筑物的屋顶。

图片 Roof0 0.jpg Roof1 0.jpg Roof2 0.jpg Roof2 3.jpg Roof2 4.jpg Roof2 5.jpg
roof:shape flat skillion gabled half-hipped hipped pyramidal
平顶 披屋 山墙 两坡 四坡 金字塔形
图片 Roof4 0.jpg Roof4 2.jpg Roof5 6.jpg Roof8.jpg Roof5 0.jpg Roof3 1.jpg
roof:shape gambrel mansard dome onion round saltbox
复斜 折面 球形 洋葱式 圆柱形 盐盒式

其他屋顶标签

关键字 注解
roof:orientation=along/across 对于带有屋脊的屋顶,假定屋脊与建筑物的最长边平行(roof:orientation=along)。但是可以使用此标签明确标注。
roof:height=* 建筑物的高度(即立面的高度)计算为建筑物的总height=*减去roof:height=*
roof:angle=* 除了roof:height=*之外,还可以通过提供坡面的倾斜度(以度为单位)来间接指定屋顶高度。
roof:levels=* 尚未计入building:levels=*中的屋顶内楼层数。
roof:direction=* 从屋顶背面指向正面的方向,即屋顶坡面朝向的方向。

标签提案

某些屋顶(例如方形建筑物)无法使用本页上描述的简单技术准确建模。

基本三维建筑提案中建议了其他屋顶形状,包括用于手动建模的高级方法(例如屋顶线提案OSM-4D/Roof_table的一部分)。

本节为模板,editable here可于此处编辑

表面颜色与材质

关键字 注解
building:colour=* 建筑立面颜色。参阅colour=*以获取可能的值。
roof:colour=* 屋顶颜色。参阅colour=*以获取可能的值。
building:material=* 建筑立面材料。
roof:material=* 屋顶材料。

3D范例

要查看大规模的3D建筑群,请参见此处的示例: 3D示范区

要查看单个3D建筑物,请参见此处的示例: 3D建筑范例

软件支持

主条目:3D development

许多地图和工具都支持简单的3D建筑架构。首批工具包括2009年的OSM-3D.org渲染器,2011年的OSM2World渲染器和Kendzi3D插件,以及2012年的Nutiteq Android 3D映射SDK(现为Carto Mobile SDK)和WikiMiniAtlasOSMBuildings在2012年推出了2.5D显示,随后是2015年的3D版本。2013年,F4 Map成为第一个完全支持简单3D建筑架构的渲染器。

编辑工具

软件名称 平台 架构支持 许可 备注
Kendzi3d Windows, macOS, Linux 是 BSD JOSM插件
SketchOSM Windows 部分的 Proprietary SketchUp plugin in beta

地图应用

应用名称 平台 架构支持 许可 备注
Streets GL Web 是 MIT
OSM2World Web 部分的 LGPL Currently implementing the remaining features for the 0.2.0 release - slippymap (Germany only)
OSMBuildings Web 部分的 BSD
F4 Map Web 是 Proprietary 具有渲染和场景支持的Demo Web Map
Mapbox Static API Web 部分的 BSD 需要一个免费的Mapbox Studio帐户。
OpenScienceMap Web 部分的 LGPL Interprets only height/min_height tags client-side. The S3DB Layer uses vtm meshes generated on the server (using plpgsql with PostGIS and SFCGAL). Web map
CartoType Maps App Windows, Linux, Macintosh 部分的 Proprietary but unrestricted use 专有CartoType库的免费演示应用程序。CartoType GL版本实现了大多数屋顶形状。包括样式表编辑器。
OSG-Maps Android 部分的 Proprietary
OSM-3D.org Web 部分的 see OSM-3D#Buildings
osmapa.pl Mapnik stylesheet Web 部分的 在2.5D视图中实现的大多数屋顶类型
OSM go Web 部分的 GPL 仅金字塔顶和圆顶(但默认为平顶)
WikiMiniAtlas Web 部分的 GPL 仅金字塔顶
VR Map Web 部分的 MPL 仅高度和颜色

地图框架

主条目:Frameworks
软件名称 平台 语言 架构支持 许可 备注
Carto Mobile SDK Android, iOS, Windows Phone Java, Objective-C++, Swift, C# 部分的 BSD most roof shapes supported; see Carto's documentation
CartoType for Android Android Java 部分的 Proprietary Most roof shapes supported.Styles can be controlled using CartoType's XML style sheets. Uses OpenGL ES graphics acceleration. Viewing angle, height, field of view, etc., can be modified.
CartoType for iOS iOS Objective C, Swift
CartoType for C++ Windows, Linux, OS X (Macintosh) C++
CartoType for .NET Windows C#, VB.NET and other .NET languages
CartoType for Qt Qt on Windows, Mac (OS X) and Linux C++
Mapbox GL JS Web JavaScript 部分的 BSD Options for customizing 3D building display are included in the Mapbox Style Specification. (See Mapbox's blog post announcing GL JS support.)
Mapbox Android SDK Android Java
Mapbox iOS SDK iOS Objective-C, Swift, Interface Builder
Mapbox macOS SDK macOS Objective-C, Swift, Interface Builder, AppleScript
Mapbox Qt SDK Qt C++, QML
Mapbox Unity SDK Cross-platform C# Apache
node-mapbox-gl-native Node.js JavaScript BSD
osm2x3d Web 部分的 Unknown幫忙將此翻譯成簡體中文! see also [1] and [2]
OSMBuildings Web JavaScript 部分的 BSD 2.5D and 3D versions available
Tangram Web JavaScript 部分的 MIT Mapzen renders 3D buildings in Tangram and other products
Tangram ES Android, iOS, Linux, macOS C++
VTM Android, iOS, Web Java 部分的 LGPL Part of the mapsforge project.

设计工具

软件名称 平台 架构支持 许可 描述
blender-osm Windows, macOS, Linux 部分的 GPL One click download and import of OpenStreetMap and terrain. Can import more than 100,000 buildings. A large number of roof shapes is supported: flat, gabled, hipped (for a quadrangle outline only), mono-pitched, half-hipped, round, pyramidal, gambrel, dome, onion and saltbox.
Mapbox Studio Web 部分的 Proprietary Includes a Mapbox GL style editor that supports building (part) heights.
Maputnik Web 部分的 MIT A Mapbox GL style editor that supports building (part) heights.
Tangram Play Web 部分的 MIT A Tangram scene editor that supports extruded buildings with heights based on OSM data.

术语

构成斜屋顶的主要建筑元素图

帮助您理解建筑术语的图片。

相关提案

  • F3DB (Full 3D buildings)