JA:基本的な3Dの建物

From OpenStreetMap Wiki
Jump to navigation Jump to search

このページでは、建物の基本的な 3D 属性のためのタグを解説します。

以下のタグ付け方法は 2nd 3D Workshop Garching の成果であり、そこではほとんどの3D開発者が、彼らのプログラムで統一されたタグのサブセットをサポートすることに同意しました。基本的に、我々は2種類のエリアを使って建物の立体形状を記述します。1)「建物のアウトライン」は複雑な形状の建物の輪郭を表します。2)「建物の部分」は高さが異なったり、他の属性を持つ部分ごとに建物を区分けして記述します。

マッピング方法

建物の輪郭

建物外形(赤線)の中に2つのbuilding:partを持つ(緑色)建物

建物の輪郭は、建物のすべての部分を結合した領域を表し、建物のフットプリントとも呼ばれます。 これはエリア(閉じたウェイまたはマルチポリゴン)として描画して building=* でタグ付けします。

建物全体の属性(例えば、住所、名称、全体の高さ、管理者など)は、この建物の輪郭にタグ付けする必要があります。

建物の輪郭は、Mapnikのような二次元のレンダラーや、三次元のモデリングに関心がないデータ利用者への後方互換性を提供します。建物に building:part=* のエリアが存在する場合、建物の輪郭は3Dのレンダリングでは考慮されません。


建物の部分

建物の部分ごとに物理的な特性(高さ、色など)が異なる場合、輪郭の中にエリアを追加しそれらを building:part=* でタグ付けします。 building:part=* の値は通常 yes ですが、任意の building=* の値を持つことができます。

建物の輪郭は、異なる属性を持つ複数の building:part=* のエリア全体の外周に一致させる必要があります。これらのエリアは建物によって、お互いに重なっていたりあるいは離れていたりします。二次元のフットプリントでは重なる部分が存在(あるいは重ねる必要がある)しますが、三次元の立体形状では重ならないようにして下さい(特に共通面がある場合)。

building:part=* のエリアに適用するタグ付けの例は下の節を参照して下さい。

building:part=* でタグ付けしたエリアは主に3Dのレンダリングで考慮されます。二次元のレンダラーは次の節で記述する建物の属性を無視します。

ヒント:重なりのある形状を選択することが難しい場合があります。JOSMでは 'Alt'キー を押しながらクリックして、重なるオブジェクトを循環し、選択したいものを選びます。


建物のリレーション

建物の少なくとも一部が建物のフットプリントにぶら下がっている場合、または建物が多数の部分からなる複雑な構造である場合は、 type=building リレーションを使用して、建物の輪郭とすべての建物の部分をグループ化できます。 それ以外の場合は、type=building リレーションを作成する必要はありません。つまり、上記のようにすべての建物の部分を建物の輪郭内に配置するだけです。

もし type=building リレーションを作成する場合は、すべての建物の部分を Role part のロールメンバーとして、リレーションに含める必要があります。建物の輪郭は Role outline のロールメンバーとしてリレーションに追加します。

建物の部分は type=building リレーションに含まれていれば、輪郭のウェイに対して任意の位置(内側、外側、交差、接触)に配置することができます。

type=building リレーションがない場合は、アプリケーションは建物の輪郭内にあるすべての建物の部分を、その建物の一部として扱う必要があります。


建物の輪郭と部分用のタグ付け

次のタグは建物の輪郭と建物の部分の両方に使うことができます。

高さ

階数と高さのタグ付け例
Key Comment
height=* 接地面の最低位置と建物の屋根の先端との間の距離。ただし、アンテナ、尖塔、その他屋根に据え付けられた装置は除きます。
min_height=* 建物構造の下部のおおよその高さ。

min_height が使われた時でも、height は依然として地面から構造物の先頭までの距離であることに注意してください。このため、3メーターの高さの"橋"が、橋の基底部が地上10メーターの位置にある場合は、min_height=10, height=13となります。

building:levels=* 地上にある建物の階数(屋根の中にある階数は除く)。建物に適切なテクスチャをつけることができます。

新しい建物をタグ付けする場合は、できればheight の値を設定するようにしてください。 building:levels=* タグは height タグに追加する場合のみにしてみてください。

building:min_level=* 建物の部分でスキップされた階数、min_height に類似

屋根

屋根の形状

よく知られている屋根の種別のカタログを使って建物の屋根の特徴を表現することができます。

Image 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(ピラミッド型)
Image 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


屋根に関する他のタグ

Key Comment
roof:orientation=along/across 棟(稜線)のある屋根には、棟は建物のいちばん長い側面に沿って平行にあるものとみなされます(roof:orientation=along)。 ただし、このタグで明示的にタグ付けすることができます。
roof:height=* 建物の高さ(すなわち正面の高さ)は建物全体の高さ height=* から屋根の高さ roof:height=* を引いたものです。
roof:angle=* roof:height=* の代わりに屋根の側面の傾斜角度を使用して屋根の高さを暗黙的に示すこともできます。
roof:levels=* 屋根の中の階数で、建物の階数 building:levels=* は含みません。
roof:direction=* 屋根の後ろ側から前側への方向、つまり屋根の主面が向いている方向です。

提案されたタグ

一部の屋根(正方形の建物など)は、このページで説明されている簡単な手法では正確にモデル化できません。 追加の屋根形状がS3DB Proposalsで提案されています。これには手動モデリングの高度なアプローチ(ProposedRoofLinesOSM-4D/Roof tableの一部など)を含みます。


表面の色と材質

Key Comment
building:colour=* 建物正面の色。取り得る値は colour=* を参照。
roof:colour=* 建物の屋根の色。取り得る値は colour=* 参照。
building:material=* 建物正面の材質
roof:material=* 屋根の材質

3Dの例

ソフトウェアのサポート

主な記事:3D development

多くのマップとツールは、単純な3Dの建物のスキーマをサポートしています。 最初のものには、2009年の OSM-3D.org レンダラー、2011年のOSM2WorldレンダラーとKendzi3D JOSMプラグイン、2012年のNutiteq Android 3DマッピングSDK(現在のCarto Mobile SDK)とWikiMiniAtlasがあります。[OSMBuildings]]は2012年に 2.5D ディスプレイを発売し、続いて2015年に3Dのバージョン。2013年にF4 Mapは、単純な3Dの建物のスキーマを完全にサポートする最初のブラウザーベースのレンダラーになりました。

編集ツール

ソフトウェア名 プラットフォーム サポートするスキーマ ライセンス 備考
Kendzi3d Windows, macOS, Linux はい BSD JOSM plugin
SketchOSM Windows パーシャル Proprietary SketchUp plugin in beta, discontinued July 2020

地図アプリケーション

アプリケーション名 プラットフォーム サポートするスキーマ ライセンス 備考
CartoType Maps App Windows, Linux, Macintosh パーシャル Proprietary but unrestricted use プロプライエタリCartoTypeライブラリの無料デモアプリケーション。 CartoType GLバージョンは、ほとんどの屋根形状を実装します。スタイルシートエディタが含まれています。
F4 Map Web はい Proprietary レンダリングとシーンのサポート付きの Demo Web Map
Mapbox Static API Web パーシャル BSD フリーの Mapbox Studio アカウントが必要。
OpenScienceMap Web パーシャル LGPL クライアント側のheight / min_heightタグのみを解釈します。 S3DBレイヤーは、サーバー上で生成されたvtmメッシュを使用します(PostGISおよびSFCGALでplpgsqlを使用)。 Web map
OSG-Maps Android パーシャル Proprietary
OSM2World Web パーシャル LGPL 0.2.0リリースの残りの機能を実装中。- slippymap(ドイツのみ)
OSM-3D.org Web パーシャル OSM-3D#Buildings参照
osmapa.pl Mapnik stylesheet Web パーシャル ほとんどの屋根形状を 2.5D view で実装
OSMBuildings Web パーシャル BSD
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 ほとんどの屋根形状をサポート。 Carto's documentation参照
CartoType for Android Android Java パーシャル Proprietary ほとんどの屋根形状をサポート。スタイルはCartoType's XML style sheetで制御。OpenGL ES graphics accelerationを使用。視野角、高さ、視野などを変更可能。
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 OpenStreetMapと地形のワンクリックダウンロードとインポート。 100,000以上の建物をインポートできます。 多数の屋根形状がサポートされています: flat, gabled, hipped (for a quadrangle outline only), mono-pitched, half-hipped, round, pyramidal, gambrel, dome, onion and saltbox.
Mapbox Studio Web パーシャル Proprietary 建物の高さをサポートするMapbox GLスタイルエディタを含みます。
Maputnik Web パーシャル MIT 建物の高さをサポートするMapbox GLスタイルエディタ
Tangram Play Web パーシャル MIT OSMデータに基づいて高さのある押し出し建物をサポートするタングラムシーンエディタ。

用語

傾斜屋根を構成する主要な建築要素の図

用語を理解するための図です。

関連する提案

  • F3DB (放棄された Full 3D buildings の提案)