Drawing パッケージの要件
Note
Azure Maps Creator の提供終了
Azure Maps Creator の屋内マップ サービスは非推奨となり、9/30/25 に廃止されます。 詳細については、「 End of Life Announcement of Azure Maps Creator」を参照してください。
Azure Maps Conversion サービスを使用することにより、アップロードした描画パッケージをマップ データに変換できます。 この記事では、Conversion API の Drawing パッケージの要件について説明します。 サンプル パッケージを表示するには、サンプルの Drawing パッケージをダウンロードします。
前提条件
この Drawing パッケージには、DWG 形式で保存された図面が含まれています。これは、Autodesk の AutoCAD® ソフトウェアのネイティブ ファイル形式です。
任意の CAD ソフトウェアを選択して、Drawing パッケージで図面を作成することができます。
Conversion サービスを使用すると、描画パッケージをマップ データに変換できます。 Conversion サービスは、AutoCAD DWG ファイル形式 AC1032
で機能します。
用語集
この記事を読む際に簡単に参照できるように、重要な用語と定義を次に示します。
期間 | 定義 |
---|---|
レイヤー | 描画ファイルからの AutoCAD DWG レイヤー。 |
Entity | 描画ファイルからの AutoCAD DWG レイヤー。 |
Xref | 外部参照としてプライマリ図面にアタッチされた AutoCAD DWG ファイル形式のファイル。 |
Level | 設定した高度にある建物の領域。 たとえば、ビルのフロアなどです。 |
機能 | 変換サービスから生成される、ジオメトリとメタデータの情報を組み合わせたオブジェクトのインスタンス。 |
地物クラス | 地物の一般的なブループリント。 たとえば、ユニットは地物クラスであり、オフィスは地物です。 |
Drawing パッケージの構造
Drawing パッケージは、次のファイルを含む .zip アーカイブです。
- AutoCAD DWG ファイル形式の DWG ファイル。
- Drawing パッケージ内の DWG ファイルを記述する manifest.json ファイル。
Drawing パッケージは、.zip 拡張子の付いた 1 つのアーカイブ ファイルに圧縮する必要があります。 DWG ファイルはパッケージ内で任意の方法で編成できますが、マニフェスト ファイルは zip 圧縮されたパッケージのルート ディレクトリに配置する必要があります。 次のセクションでは、DWG ファイル、マニフェスト ファイル、およびこれらのファイルのコンテンツの要件について詳しく説明します。 サンプル パッケージを表示するには、サンプルの Drawing パッケージをダウンロードします。
DWG ファイル変換プロセス
Conversion サービスは、各 DWG ファイルに対して次の処理を実行します。
- 地物クラスの抽出
- Levels
- Units
- ゾーン
- 開口部
- 壁
- 垂直貫入
- "施設" 地物の生成
- 他の地物によって参照される既定のカテゴリ地物の最小のセットを生成します。
- room
- structure
- wall
- opening.door
- ゾーン
- facility
DWG ファイルの要件
施設のレベルごとに 1 つの DWG ファイルが必要です。 1 つのレベルのすべてのデータは、1 つの DWG ファイルに含まれている必要があります。 外部参照 (xrefs) は、親図面にバインドする必要があります。 例えば、3 つのレベルを持つ施設の場合、図面パッケージ内に 3 つの DWG ファイルがあります。
各 DWG ファイルは、次の要件に従う必要があります。
- DWG ファイルは、Exterior および Unit レイヤーを定義する必要があります。 必要に応じて、Wall、Door、UnitLabel、Zone、および ZoneLabel のレイヤーを定義することもできます。
- DWG ファイルには、複数のレベルの地物を含めることはできません。
- DWG ファイルには、複数の施設の地物を含めることはできません。
- DWG では、Drawing パッケージ内の他の DWG ファイルと同じ測定系と測定単位を参照する必要があります。
DWG レイヤーの要件
各 DWG レイヤーは、次の規則に従う必要があります。
- レイヤーに含めることができるのは、1 クラスの地物のみです。 たとえば、ユニットと壁を同じレイヤーに含めることはできません。
- 1 つのクラスの地物を複数のレイヤーで表すことができます。
- 自己交差するポリゴンは許可されていますが、自動的に修復されます。 これらが修復されると、Conversion サービスから警告が生成されます。 修復された結果は期待された結果と一致しない可能性があるため、手動で検査することをお勧めします。
- 各レイヤーには、サポートされるエンティティ型のリストがあります。 その他のエンティティ型がレイヤー内にあった場合は無視されます。 たとえば、壁のレイヤーでは、テキスト エンティティはサポートされていません。
次の表は、レイヤーごとにサポートされているエンティティの種類と変換されたマップ地物の概要を示しています。 レイヤーにサポートされていないエンティティ型が含まれている場合、Conversion サービスではそのエンティティは無視されます。
レイヤー | エンティティの種類 | 変換された地物 |
---|---|---|
Exterior | 多角形、ポリライン (閉)、円、楕円 (閉) | Levels |
単位 | 多角形、ポリライン (閉)、円、楕円 (閉) | ユニットと垂直貫入 |
Wall | 多角形、ポリライン (閉)、円、楕円 (閉)、構造体 | |
Door | 多角形、ポリライン、線、円弧、円 | 開口部 |
ゾーン | 多角形、ポリライン (閉)、円、楕円 (閉) | ゾーン |
UnitLabel | テキスト (単一行) | 適用不可。 このレイヤーでは、Unit レイヤーのユニット地物にのみプロパティを追加できます。 詳細については、「UnitLabel レイヤー」を参照してください。 |
ZoneLabel | テキスト (単一行) | 適用不可。 このレイヤーでは、ZonesLayer のゾーン地物にのみプロパティを追加できます。 詳細については、「ZoneLabel レイヤー」を参照してください。 |
以降のセクションでは、レイヤーごとの要件について説明します。
Exterior レイヤー
各レベルの DWG ファイルには、そのレベルの境界を定義するレイヤーが含まれている必要があります。 このレイヤーは Exterior レイヤーと呼ばれます。 たとえば、施設に 2 つのレベルが含まれている場合、施設には 2 つの DWG ファイルが必要であり、各ファイルには Exterior レイヤーがあります。
Exterior レイヤーにあるエンティティ図面の数には関係なく、結果として得られる施設データセットには、DWG ファイルごとに 1 つのレベルの地物のみが含まれています。 追加として:
- 外装は、多角形、ポリライン (閉)、円、または 楕円 (閉) として描画する必要があります。
- 外装は重ねることができますが、1 つのジオメトリに分解されます。
- 結果として得られるレベル地物は、4 平方メートル以上である必要があります。
- 結果として得られるレベル地物は、400,000 平方メートル以下である必要があります。
レイヤーに複数の重なり合うポリラインが含まれている場合、それらは 1 つのレベル地物に分解されます。 代わりに、レイヤーに複数の重ならないポリラインが含まれている場合、結果のレベル地物は複数の多角形で表現されます。
Exterior レイヤーの例は、サンプル Drawing パッケージの Outline レイヤーとして確認することができます。
Unit レイヤー
各レベルの DWG ファイルでは、ユニットを含むレイヤーが定義されます。 ユニットは、オフィス、廊下、階段、エレベーターなど、建物内の移動可能なスペースです。 VerticalPenetrationCategory
プロパティが定義されている場合、エレベーターや階段など、複数のレベルにまたがる移動可能なユニットは、垂直貫入地物に変換されます。 互いに重なる垂直貫入地物には、1 つの setid
が割り当てられます。
Unit レイヤーは次の要件に従う必要があります。
- ユニットは、多角形、ポリライン (閉)、円、または 楕円 (閉) として描画する必要があります。
- ユニットは、施設の外装の境界内に収まっている必要があります。
- ユニットの一部を重ねることはできません。
- ユニットに自己交差するジオメトリを含めることはできません。
UnitLabel レイヤーにテキスト オブジェクトを作成してユニットに名前を付け、ユニットの境界内にオブジェクトを配置します。 詳細については、「UnitLabel レイヤー」を参照してください。
Unit レイヤーの例は、サンプル Drawing パッケージで確認できます。
Wall レイヤー
各レベルの DWG ファイルには、壁、柱、その他の建築構造の物理的な範囲を定義するレイヤーを含めることができます。
- 壁は、多角形、ポリライン (閉)、円、または 楕円 (閉) として描画する必要があります。
- 1 つまたは複数の Wall レイヤーには、建築構造として解釈されるジオメトリのみを含める必要があります。
Wall レイヤーの例は、サンプル Drawing パッケージで確認できます。
Door レイヤー
ドアを含む DWG レイヤーを含めることができます。 各ドアは、Unit レイヤーのユニットの端と重なる必要があります。
Azure Maps データセットのドアの開口部は、複数のユニットの境界と重なる単一の線分として表されます。 以下の画像は、Azure Maps がドア レイヤー ジオメトリをデータセット内の開口部フィーチャーに変換する方法を示しています。
Zone レイヤー
各レベルの DWG ファイルには、ゾーンの物理的な範囲を定義する Zone レイヤーを含めることができます。 ゾーンは、名前を付けてレンダリングできる、移動不可能な領域です。 ゾーンは複数のレベルにまたがることができ、zoneSetId プロパティを使用してグループ化されます。
- ゾーンは、多角形、ポリライン (閉)、または 楕円 (閉) として描画する必要があります。
- ゾーンは重複していてもかまいません。
- ゾーンは、施設の外装の内側または外側に配置することができます。
ZoneLabel レイヤーにテキスト オブジェクトを作成し、ゾーンの境界内にテキスト オブジェクトを配置して、ゾーンに名前を付けます。 詳細については、「ZoneLabel レイヤー」を参照してください。
Zone レイヤーの例は、サンプル Drawing パッケージで確認できます。
UnitLabel レイヤー
各レベルの DWG ファイルには、UnitLabel レイヤーを含めることができます。 UnitLabel レイヤーでは、Unit レイヤーから抽出されたユニットに name プロパティを追加します。 name プロパティを持つユニットには、マニフェスト ファイルで詳細をさらに指定できます。
- ユニット ラベルは単一行のテキスト エンティティである必要があります。
- ユニット ラベルは、ユニットの境界内に完全に収まる必要があります。
- UnitLabel レイヤーのユニットに複数のテキスト エンティティを含めることはできません。
UnitLabel レイヤーの例は、サンプル Drawing パッケージで確認できます。
ZoneLabel レイヤー
各レベルの DWG ファイルには、ZoneLabel レイヤーを含めることができます。 このレイヤーでは、Zone レイヤーから抽出されたゾーンに name プロパティを追加します。 name プロパティを持つゾーンには、マニフェスト ファイルで詳細をさらに指定できます。
- ゾーン ラベルは単一行のテキスト エンティティである必要があります。
- ゾーン ラベルは、ユニットの境界内に収まる必要があります。
- ZoneLabel レイヤーのゾーンに複数のテキスト エンティティを含めることはできません。
ZoneLabel レイヤーの例は、サンプル Drawing パッケージで確認できます。
マニフェスト ファイルの要件
zip フォルダーには、ディレクトリのルート レベルにマニフェスト ファイルが格納されている必要があります。また、ファイル名は manifest.json にする必要があります。 これには、Conversion サービスでコンテンツを解析できる DWG ファイルについて記述されています。 マニフェストに指定されたファイルのみが取り込まれます。 zip フォルダー内にあっても、マニフェストに適切に登録されていないファイルは無視されます。
マニフェスト オブジェクトの使用には要件がありますが、すべてのオブジェクトが必要なわけではありません。 Conversion サービス バージョン 1.1 の必須オブジェクトと省略可能なオブジェクトを次の表に示します。
Note
特に指定されていない限り、プロパティの型が string のすべてのプロパティでは最大 1,000 文字を使用できます。
Object | 必須 | 説明 |
---|---|---|
version |
true | マニフェスト スキーマのバージョン。 現時点では、バージョン 1.1 のみがサポートされています。 |
directoryInfo |
true | 施設の地理情報と連絡先情報の概要を示します。 また、居住者の地理情報と連絡先情報の概要を示すためにも使用できます。 |
buildingLevels |
true | 建物のレベルと、レベルの設計を含むファイルを指定します。 |
georeference |
true | 施設の図面の数値的な地理情報が含まれています。 |
dwgLayers |
true | レイヤーの名前が列挙されています。各レイヤーにはその地物の名前が列挙されています。 |
unitProperties |
false | ユニット地物に関する、より多くのメタデータを挿入するために使用できます。 |
zoneProperties |
false | ゾーン地物に関する、より多くのメタデータを挿入するために使用できます。 |
以下のセクションでは、各オブジェクトの要件について詳しく説明します。
directoryInfo
プロパティ | タイプ | Required | Description |
---|---|---|---|
name |
string | true | 建物の名前。 |
streetAddress |
string | false | 建物の住所。 |
unit |
string | false | 建物内のユニット。 |
locality |
string | false | 都市、町、エリア、近隣、または地域の名前。 |
adminDivisions |
文字列の JSON 配列 | false | 住所の表記を含む配列。 例: (国、州) ISO 3166 の国番号と ISO 3166-2 の州または領域番号を使用します。 |
postalCode |
string | false | 郵便物の仕分用番号。 |
hoursOfOperation |
string | false | OSM の Opening Hours 形式に準拠しています。 |
phone |
string | false | 建物に関連付けられている電話番号。 |
website |
string | false | 建物に関連付けられている Web サイト。 |
nonPublic |
[bool] | false | 建物が一般公開されているかどうかを指定するフラグ。 |
anchorLatitude |
numeric | false | 施設アンカー (画鋲) の緯度。 |
anchorLongitude |
numeric | false | 施設アンカー (画鋲) の経度。 |
anchorHeightAboveSeaLevel |
numeric | false | 施設の地表レベルを基準とする 1 階の高さ (メートル単位)。 |
defaultLevelVerticalExtent 数値 |
false | レベルの verticalExtent が定義されていない場合に使用する、この施設のレベルの既定の高さ (厚さ)。 |
buildingLevels
buildingLevels
オブジェクトには、建物レベルの JSON 配列が含まれています。
プロパティ | タイプ | Required | Description |
---|---|---|---|
levelName |
string | true | わかりやすいレベル名。 次に例を示します。フロア 1、ロビー、ブルー パーキング、または地下。 |
ordinal |
整数 (integer) | true | レベルの垂直方向の順序を決定します。 すべての施設には、ordinal 0 のレベルが必要です。 |
heightAboveFacilityAnchor |
numeric | false | アンカーより上のレベルの高さ (メートル単位)。 |
verticalExtent |
numeric | false | レベルの床から天井までの高さ (厚さ) (メートル単位)。 |
filename |
string | true | 建物レベルの CAD 図面のファイル システム パス。 建物の zip ファイルのルートを基準とした相対パスにする必要があります。 |
georeference
プロパティ | タイプ | Required | 説明 |
---|---|---|---|
lat |
numeric | true | 施設図面の原点の緯度を表す 10 進数表現。 起点の座標は WGS84 Web メルカトル (EPSG:3857 ) 内にある必要があります。 |
lon |
numeric | true | 施設図面の原点の経度を表す 10 進数表現。 起点の座標は WGS84 Web メルカトル (EPSG:3857 ) 内にある必要があります。 |
angle |
numeric | true | 真北と図面の垂直 (Y) 軸との間の時計回りの角度 (度単位)。 |
dwgLayers
プロパティ | タイプ | Required | 説明 |
---|---|---|---|
exterior |
文字列の配列 | true | 外装の建物プロファイルを定義するレイヤーの名前。 |
unit |
文字列の配列 | false | ユニットを定義するレイヤーの名前。 |
wall |
文字列の配列 | false | 壁を定義するレイヤーの名前。 |
door |
文字列の配列 | false | ドアを定義するレイヤーの名前。 |
unitLabel |
文字列の配列 | false | ユニットの名前を定義するレイヤーの名前。 |
zone |
文字列の配列 | false | ゾーンを定義するレイヤーの名前。 |
zoneLabel |
文字列の配列 | false | ゾーンの名前を定義するレイヤーの名前。 |
unitProperties
unitProperties
オブジェクトには、ユニットのプロパティの JSON 配列が含まれています。
プロパティ | タイプ | Required | Description |
---|---|---|---|
unitName |
string | true | この unitProperty レコードに関連付けるユニットの名前。 このレコードは、unitName と一致するラベルが unitLabel レイヤーで見つかった場合にのみ有効です。 |
categoryName |
string | false | ユニットの目的。 指定されたレンダリング スタイルで使用できる値のリストについては、categories.jsonのドキュメントの使用を確認してください。 |
occupants |
directoryInfo オブジェクトの配列 | false | ユニットの occupants の一覧。 |
nameAlt |
string | false | ユニットの代替名。 |
nameSubtitle |
string | false | ユニットのサブタイトル。 |
addressRoomNumber |
string | false | ユニットの部屋、ユニット、アパートメント、またはスイートの番号。 |
verticalPenetrationCategory |
string | false | このプロパティが定義されている場合、結果の地物はユニットではなく垂直貫入 (VRT) になります。 垂直貫入を使用すると、その上のレベルまたは下のレベルにある他の垂直貫入地物に移動できます。 垂直貫入はカテゴリ名です。 このプロパティが定義されている場合、categoryName プロパティは verticalPenetrationCategory でオーバーライドされます。 |
verticalPenetrationDirection |
string | false | verticalPenetrationCategory が定義されている場合は、必要に応じて有効な移動方向を定義します。 使用できる値は、lowToHigh 、highToLow 、both 、closed です。 既定値は both です。 値は、大文字小文字が区別されます。 |
nonPublic |
[bool] | false | ユニットが一般公開されているかどうかを示します。 |
isRoutable |
[bool] | false | このプロパティが false に設定されている場合、ユニットへの移動も通過もできません。 既定値は true です。 |
isOpenArea |
[bool] | false | ユニットに開口部をアタッチすることなく、移動エージェントはユニットに入ることができます。 既定では、この値は開口部がないユニットでは true に設定され、開口部があるユニットでは false に設定されています。 開口部のないユニットで isOpenArea を false に手動で設定すると、結果として得られるユニットに移動エージェントから到達できなくなるため、警告が表示されます。 |
zoneProperties
zoneProperties
オブジェクトには、ゾーンのプロパティの JSON 配列が含まれています。
プロパティ | タイプ | Required | 説明 |
---|---|---|---|
zoneName | string | true | zoneProperty レコードに関連付けるゾーンの名前。 このレコードは、zoneName と一致するラベルがゾーンの zoneLabel レイヤーで見つかった場合にのみ有効です。 |
categoryName | string | false | ゾーンの目的。 指定されたレンダリング スタイルで使用できる値のリストについては、categories.jsonのドキュメントの使用を確認してください。 |
zoneNameAlt | string | false | ゾーンの代替名。 |
zoneNameSubtitle | string | false | ゾーンのサブタイトル。 |
zoneSetId | string | false | 複数のゾーン間の関係を確立して、それらがグループとしてクエリまたは選択できるようにするためのセット ID。 たとえば、複数のレベルにまたがるゾーンです。 |
サンプル Drawing パッケージ マニフェスト
サンプルの描画パッケージのマニフェスト ファイルを次に示します。 GitHub で Azure Maps Creator のサンプル描画パッケージに移動し、パッケージ全体をダウンロードします。
マニフェスト ファイル:
{
"version": "1.1",
"directoryInfo": {
"name": "Contoso Building",
"streetAddress": "Contoso Way",
"unit": "1",
"locality": "Contoso eastside",
"postalCode": "98052",
"adminDivisions": [
"Contoso city",
"Contoso state",
"Contoso country"
],
"hoursOfOperation": "Mo-Fr 08:00-17:00 open",
"phone": "1 (425) 555-1234",
"website": "www.contoso.com",
"nonPublic": false,
"anchorLatitude": 47.636152,
"anchorLongitude": -122.132600,
"anchorHeightAboveSeaLevel": 1000,
"defaultLevelVerticalExtent": 3
},
"buildingLevels": {
"levels": [
{
"levelName": "Basement",
"ordinal": -1,
"filename": "./Basement.dwg"
}, {
"levelName": "Ground",
"ordinal": 0,
"verticalExtent": 5,
"filename": "./Ground.dwg"
}, {
"levelName": "Level 2",
"ordinal": 1,
"heightAboveFacilityAnchor": 3.5,
"filename": "./Level_2.dwg"
}
]
},
"georeference": {
"lat": 47.636152,
"lon": -122.132600,
"angle": 0
},
"dwgLayers": {
"exterior": [
"OUTLINE", "WINDOWS"
],
"unit": [
"UNITS"
],
"wall": [
"WALLS"
],
"door": [
"DOORS"
],
"unitLabel": [
"UNITLABELS"
],
"zone": [
"ZONES"
],
"zoneLabel": [
"ZONELABELS"
]
},
"unitProperties": [
{
"unitName": "B01",
"categoryName": "room.office",
"occupants": [
{
"name": "Joe's Office",
"phone": "1 (425) 555-1234"
}
],
"nameAlt": "Basement01",
"nameSubtitle": "01",
"addressRoomNumber": "B01",
"nonPublic": true,
"isRoutable": true,
"isOpenArea": true
},
{
"unitName": "B02"
},
{
"unitName": "B05",
"categoryName": "room.office"
},
{
"unitName": "STRB01",
"verticalPenetrationCategory": "verticalPenetration.stairs",
"verticalPenetrationDirection": "both"
},
{
"unitName": "ELVB01",
"verticalPenetrationCategory": "verticalPenetration.elevator",
"verticalPenetrationDirection": "high_to_low"
}
],
"zoneProperties":
[
{
"zoneName": "WifiB01",
"categoryName": "Zone",
"zoneNameAlt": "MyZone",
"zoneNameSubtitle": "Wifi",
"zoneSetId": "1234"
},
{
"zoneName": "Wifi101",
"categoryName": "Zone",
"zoneNameAlt": "MyZone",
"zoneNameSubtitle": "Wifi",
"zoneSetId": "1234"
}
]
}
Azure Maps Conversion サービスを使用することにより、アップロードした描画パッケージをマップ データに変換できます。 この記事では、Conversion API の Drawing パッケージの要件について説明します。 サンプル パッケージを表示するには、サンプルの図面パッケージ v2をダウンロードします。
描画パッケージを準備する方法のガイドについては、Drawing Package Guide (描画パッケージ ガイド) を参照してください。
変更とリビジョン
- ユーザー定義の地物クラスのサポートを追加しました。
- DWG レイヤーの要件を簡略化しました。
前提条件
この Drawing パッケージには、DWG 形式で保存された図面が含まれています。これは、Autodesk の AutoCAD® ソフトウェアのネイティブ ファイル形式です。
任意の CAD ソフトウェアを選択して、Drawing パッケージで図面を作成することができます。
Conversion サービスを使用すると、描画パッケージをマップ データに変換できます。 Conversion サービスは、AutoCAD DWG ファイル形式 AC1032 で機能します。
用語集
この記事を読む際に簡単に参照できるように、重要な用語と定義を次に示します。
期間 | 定義 |
---|---|
レイヤー | 描画ファイルからの AutoCAD DWG レイヤー。 |
Entity | 描画ファイルからの AutoCAD DWG レイヤー。 |
Xref | 外部参照としてプライマリ図面にアタッチされた AutoCAD DWG ファイル形式のファイル。 |
Level | 設定した高度にある施設の領域。 たとえば、施設のフロアなどです。 |
機能 | 変換サービスから生成される、ジオメトリとメタデータの情報を組み合わせたオブジェクトのインスタンス。 |
地物クラス | 地物の一般的なブループリント。 |
Drawing パッケージの構造
図面パッケージは、次のファイルを含む ZIP アーカイブです。
- AutoCAD DWG ファイル形式の DWG ファイル。
- Drawing パッケージ内の DWG ファイルを記述する manifest.json ファイル。
図面パッケージは、.zip 拡張子の付いた 1 つのアーカイブ ファイルに圧縮する必要があります。 DWG ファイルは図面パッケージ内で任意の方法で編成できますが、マニフェスト ファイルはルート ディレクトリに配置する必要があります。 次のセクションでは、DWG ファイルとマニフェスト ファイルの両方の変換プロセスと要件、およびこれらのファイルの内容について説明します。 サンプル パッケージを表示するには、サンプルの図面パッケージ v2をダウンロードします。
DWG ファイル変換プロセス
Azure Maps Conversion サービスでは、施設の DWG ファイルが、施設の施設と地物を表すマップ データに変換されます。
Azure Maps Conversion サービスでは次のものが作成されます。
- 施設地物: 施設のすべてのレベルが関連付けられている施設の最上位の地物。
- レベル地物: 施設のフロアごとに 1 つのレベル地物が作成されます。 レベル上のすべての地物は、レベルに関連付けられます。
- ユーザー定義の地物: DWG レイヤーはユーザ定義の地物クラスにマップされ、地物クラスのインスタンスになります。
DWG ファイルの要件
各 DWG ファイルは、こちらの要件に従う必要があります。
- DWG ファイルには、複数の施設の地物を含めることはできません。
- DWG ファイルには、複数のレベルの地物を含めることはできません。 例えば、3 つのレベルを持つ施設の場合、図面パッケージ内に 3 つの DWG ファイルがあります。
- 1 つのレベルのすべてのデータは、1 つの DWG ファイルに含まれている必要があります。 外部参照 (xrefs) は、親図面にバインドする必要があります。
- DWG ファイルには、そのレベルの境界を表すレイヤーを定義する必要があります。
- DWG では、Drawing パッケージ内の他の DWG ファイルと同じ測定系と測定単位を参照する必要があります。
- DWG ファイルは、同じ施設の別のレベルの上に積み重ねる場合は位置を揃える必要があります。
DWG レイヤーの要件
地物クラス
1 つ以上の DWG レイヤーをユーザー定義の地物クラスにマップできます。 マップされたレイヤー上のエンティティから、地物の 1 つのインスタンスが作成されます。 たとえば、DWG レイヤーの椅子、テーブル、ソファは、家具と呼ばれる地物クラスにマップされます。 定義されたレイヤーからすべてのエンティティに対して家具地物が作成されます。 追加として:
- 施設の異なる地物の種類を表すために、すべてのレイヤーを分離する必要があります。
- すべてのエンティティは、レベルの境界内に収まっている必要があります。
- サポートされている AutoCAD エンティティの種類は、TEXT、MTEXT、POINT、ARC、CIRCLE、LINE、POLYLINE、ELLIPSE です。
地物クラスのプロパティ
閉じた図形の境界内にある TEXT エンティティは、その地物にプロパティとして関連付けることができます。 たとえば、部屋地物クラスには、部屋名と別の部屋の種類のサンプル図面パッケージ v2 について説明するテキストが含まれている場合があります。 追加として:
- プロパティとして地物に関連付けられるのは TEXT および MTEXT エンティティだけです。 その他のエンティティの種類はすべて無視されます。
- TEXT と MTEXT の両端揃えポイントは、閉じた図形の境界内に収まっている必要があります。
- 閉じた図形の境界内に複数の TEXT プロパティがあり、両方が 1 つのプロパティにマップされている場合は、どちらかがランダムに選択されます。
施設レベル
各レベルの DWG ファイルには、そのレベルの境界を定義するレイヤーが含まれている必要があります。 たとえば、施設に 2 つのレベルが含まれている場合、2 つの DWG ファイルが必要であり、それぞれにそのレベルの境界を定義するレイヤーがあります。
レベル境界レイヤーにあるエンティティ図面の数に関係なく、最終的な施設データセットには、各 DWG ファイルの 1 レベルの地物のみが含まれます。 追加として:
- レベル境界は、多角形、ポリライン (閉)、円、または 楕円 (閉) として描画する必要があります。
- レベル境界は重ねることができますが、1 つのジオメトリに分解されます。
- 結果として得られるレベル地物は、4 平方メートル以上である必要があります。
- 結果として得られるレベル地物は、400,000 平方メートル以下である必要があります。
レイヤーに複数の重なり合うポリラインが含まれている場合、それらは 1 つのレベル地物に結合されます。 代わりに、レイヤーに複数の重ならないポリラインが含まれている場合、結果のレベル地物は複数の多角形で表現されます。
レベル境界レイヤーの例は、サンプル図面パッケージ v2の GROS$
レイヤーとして確認することができます。
マニフェスト ファイルの要件
図面パッケージには、ルート レベルにマニフェスト ファイルが格納されている必要があり、ファイル名は manifest.json にする必要があります。 このファイルには、Conversion サービスでコンテンツを解析できる DWG ファイルについて記述されています。 マニフェストに指定されたファイルのみが使用されます。 図面パッケージ内にあっても、マニフェストに適切に登録されていないファイルは無視されます。
マニフェスト ファイルの buildingLevels オブジェクト内のファイル パスは、図面パッケージのルートからの相対パスにする必要があります。 DWG ファイル名は、施設レベルの名前と正確に一致している必要があります。 たとえば、"Basement" レベルの DWG ファイルは Basement.dwg です。 レベル 2 の DWG ファイルの名前は level_2.dwg です。 ファイル名にスペースを含めることはできません。アンダースコアを使用してスペースに置き換えることができます。
マニフェスト オブジェクトの使用には要件がありますが、すべてのオブジェクトが必要なわけではありません。 Conversion サービス 2023-03-01-preview の必須オブジェクトと省略可能なオブジェクトを次の表に示します。
注意
特に指定されていない限り、すべての文字列プロパティは 1,000 文字に制限されます。
マニフェスト JSON ファイル
プロパティ | タイプ | 必須 | 説明 |
---|---|---|---|
version |
string | TRUE | マニフェスト スキーマのバージョン。 現在はバージョン "2.0" です。 |
buildingLevels |
BuildingLevels オブジェクト | TRUE | 施設のレベルと、レベルの設計を含むファイルを指定します。 |
featureClasses |
featureClass オブジェクトの配列 | TRUE | DWG 図面ファイルからレイヤーを読み取る方法を定義する地物クラス オブジェクトのリスト。 |
georeference |
georeference オブジェクト | FALSE | 施設の図面の数値的な地理情報が含まれています。 |
facilityName |
string | FALSE | 施設の名前。 |
以下のセクションでは、各オブジェクトの要件について詳しく説明します。
buildingLevels
プロパティ | タイプ | Required | 説明 |
---|---|---|---|
dwgLayers |
文字列の配列 | TRUE | 施設の外装プロファイルを定義するレイヤーの名前。 |
levels |
level オブジェクトの配列 | TRUE | レベルとは、DWG ファイルで定義されている施設内の一意のフロア、各レベルの高さ、およびそれらが表示される垂直方向の順序を指します。 |
レベル
プロパティ | タイプ | Required | Description |
---|---|---|---|
levelName |
string | TRUE | レベルの名前です。 次に例を示します。フロア 1、ロビー、ブルー パーキング、または地下。 |
ordinal |
整数 (integer) | TRUE | レベルの垂直方向の順序を定義します。 すべての ordinal 値は、施設内で一意である必要があります。 |
filename |
string | TRUE | 施設のレベルを表す DWG ファイルのパスと名前。 パスは、図面パッケージのルートに対する相対パスにする必要があります。 |
verticalExtent |
number | FALSE | レベルの床から天井までの鉛直高さ (厚さ) (メートル単位)。 |
featureClass
プロパティ | タイプ | Required | 説明 |
---|---|---|---|
dwgLayers |
文字列の配列 | TRUE | 地物クラスを定義する各レイヤーの名前。 指定したレイヤー上の各エンティティは、地物クラスのインスタンスに変換されます。 地物の変換元の dwgLayer の名前が、その地物のプロパティになります。 |
featureClassName |
String | TRUE | 地物クラスの名前。 一般的な例としては、部屋、作業場、壁などがあります。 |
featureClassProperties |
featureClassProperty オブジェクトの配列 | FALSE | 地物に関連付けられた DWG ファイル内のテキスト レイヤーをプロパティとして指定します。 たとえば、スペースの境界内にあるラベル (部屋番号など)。 |
featureClassProperty
プロパティ | タイプ | Required | 説明 |
---|---|---|---|
dwgLayers |
文字列の配列 | TRUE | 地物クラス プロパティを定義する各レイヤーの名前。 指定したレイヤー上の各エンティティは、プロパティに変換されます。 DWG TEXT エンティティと MTEXT エンティティのみがプロパティに変換されます。 その他のエンティティはすべて無視されます。 |
featureClassPropertyName |
String | TRUE | 地物クラス プロパティの名前 (spaceName や spaceUseType など)。 |
georeference
プロパティ | タイプ | Required | Description |
---|---|---|---|
lat |
number | TRUE | 施設図面の原点の緯度を表す 10 進数表現。 起点の座標は WGS84 Web メルカトル (EPSG:3857) 内にある必要があります。 |
lon |
number | TRUE | 施設図面の原点の経度を表す 10 進数表現。 起点の座標は WGS84 Web メルカトル (EPSG:3857) 内にある必要があります。 |
angle |
number | TRUE | 真北と図面の垂直 (Y) 軸との間の時計回りの角度 (度単位)。 |
サンプル Drawing パッケージ マニフェスト
この例の JSON は、サンプル図面パッケージのマニフェスト ファイルを示しています。 GitHub で Azure Maps Creator のサンプル図面パッケージ v2 に移動し、パッケージ全体をダウンロードします。
マニフェスト ファイル:
{
"version": "2.0",
"buildingLevels": {
"dwgLayers": [
"GROS$"
],
"levels": [
{
"filename": "Ground.dwg",
"levelName": "level 1",
"ordinal": 0
},
{
"filename": "Level_2.dwg",
"levelName": "level 2",
"ordinal": 1
}
]
},
"georeference": {
"lat": 47.63529901,
"lon": -122.13355885,
"angle": 0
},
"featureClasses": [
{
"featureClassName": "room",
"dwgLayers": [
"RM$"
],
"featureClassProperties": [
{
"featureClassPropertyName": "name",
"dwgLayers": [
"A-IDEN-NUMR-EXST"
]
},
{
"featureClassPropertyName": "roomType",
"dwgLayers": [
"A-IDEN-NAME-EXST"
]
}
]
},
{
"featureClassName": "wall",
"dwgLayers": [
"A-WALL-EXST",
"A-WALL-CORE-EXST",
"A-GLAZ-SILL-EXST",
"A-GLAZ-SHEL-SILL-EXST",
"A-GLAZ-SHEL-EXST",
"A-GLAZ-EXST"
]
},
{
"featureClassName": "workspace",
"dwgLayers": [
"A-BOMA"
]
},
{
"featureClassName": "workspaceFurniture",
"dwgLayers": [
"A-FURN-SYTM-EXST"
]
},
{
"featureClassName": "buildingFurniture",
"dwgLayers": [
"A-FURN-FREE-EXST"
]
}
],
"facilityName": "Contoso Building"
}
次の手順
描画パッケージを準備する方法のガイドについては、描画パッケージ ガイド を参照してください。