JA:基本的な3Dの建物
このページでは、建物の基本的な 3D 属性のためのタグを解説します。
以下のタグ付け方法は 2nd 3D Workshop Garching の成果であり、そこではほとんどの3D開発者が、彼らのプログラムで統一されたタグのサブセットをサポートすることに同意しました。基本的に、我々は2種類のエリアを使って建物の立体形状を記述します。1)「建物のアウトライン」は複雑な形状の建物の輪郭を表します。2)「建物の部分」は高さが異なったり、他の属性を持つ部分ごとに建物を区分けして記述します。
マッピング方法
建物の輪郭
建物の輪郭は、建物のすべての部分を結合した領域を表し、建物のフットプリントとも呼ばれます。 これはエリア(閉じたウェイまたはマルチポリゴン)として描画して 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 リレーションを作成する場合は、すべての建物の部分を part のロールメンバーとして、リレーションに含める必要があります。建物の輪郭は 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 | ||||||
---|---|---|---|---|---|---|
roof:shape | flat(平屋根) | skillion(片流れ屋根) | gabled(切妻造) | half-hipped(半切妻屋根) | hipped(寄棟造) | pyramidal(ピラミッド型) |
Image | ||||||
---|---|---|---|---|---|---|
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で提案されています。これには手動モデリングの高度なアプローチ(ProposedRoofLinesやOSM-4D/Roof tableの一部など)を含みます。
表面の色と材質
Key | Comment |
---|---|
building:colour=* | 建物正面の色。取り得る値は colour=* を参照。 |
roof:colour=* | 建物の屋根の色。取り得る値は colour=* 参照。 |
building:material=* | 建物正面の材質 |
roof:material=* | 屋根の材質 |
3Dの例
- 3Dの建物が多数あるエリアの例:3D Demo Areas
- 個々の3Dの建物の例:3D Building Examples
ソフトウェアのサポート
- 主な記事: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 の提案)