スクリプトによるスキーマファイルの生成
ベクターウィンドウがアクティブの場合、前景レイヤーのフィールド構成をスキーマ形式でファイルへ出力します。
または、データベースウィンドウがアクティブの場合、データベースのフィールド構成をスキーマ形式でファイルへ出力します。
スキーマファイルについては以下を御覧下さい。
スキーマファイル概要 (PDF形式)
- ■ サンプル
- サンプル[script46.zip(約80KB)]をダウンロードする
| pcmCreateSchema.js | :サンプルJScript |
| db | :実行@用サンプル |
| shp | :実行A用サンプル |
- ■ 解説
-
- 第1パラメーター:出力されるファイルの文字コード
- 0 = Shift-JIS
0以外 = UTF-8
- 第2パラメーター:スキーマの種類
- 0 = インポート用スキーマ
0以外 = エクスポート用スキーマ
- ■ 実行@:CSVファイルのインポートスキーマの場合
-
- ダウンロードしたファイルを解凍します。
ここでは、「C:\sample8\script46」とします。
- PC-Mappingを起動します。
- [ホーム]-[新規]-[外部データベース(CSV)]を実行します。
- [外部データベースの取り込み]ダイアログボックスで、インポートスキーマファイルを指定せず、実行します。
- 「sample」データベースが読み込まれます。
- 「sample」データベースを加工します(「samples_加工.ndv」)。
- コマンドラインバーに「C:\sample8\script46\pcmCreateSchema.js△0△0」(△は半角スペース)と記述し、実行します。
- 保存先とスキーマファイル名「sample.xml」を指定し、保存します。
- 8.で保存したスキーマファイル「sample.xml」をメモ帳等エディターで開きます。
主に、
- データベースタイトルを変更する場合は、<Title>タグ内にある<PcmName>タグのタイトルを変更します。
- インポートしないフィールドは、<FieldDef>タグ内にある<PcmName>タグのタイトルを「@Delete」に変更します。
- インポートファイルになく、追加したフィールドは、<FieldDef>タグ内にある<OrgName>タグのタイトルを「@Create」に変更します。
- [ホーム]-[新規]-[外部データベース(CSV)]を実行します。
- [外部データベースの取り込み]ダイアログボックスで、インポートスキーマファイルを指定し、実行します。
- すると、「samples_加工.ndv」と同じように読み込む事ができます。
ただし、「sample_加工.ndv」の「長整数」フィールドのように、スキーマにないフィールド型を指定した場合、「sample.xml」の「長整数」フィールドの<FieldDef>タグ内に<FieldType>タグは生成されません。
この状態でインポートした場合、フィールド型は指定されず、文字型になります。
- ■ 実行A:シェープファイルのインポートスキーマの場合
-
- PC-Mappingを起動します。
- [インポート]-[汎用/GIS]-[シェープ]-[ArcViewシェープファイル]を実行します。
- [シェープファイルインポート]ダイアログボックスで、インポートスキーマを指定せず、実行します。
- 読み込んだプロジェクトを以下の1.〜6.のように加工します(「sample_加工.pcm」)。
- 描画パラメーターファイル「pen.pcp」を読み込みます。
- 「街区」「建物」レイヤーアーク内部属性「pen」フィールドを追加します。
- データベースファイル「町名辞書.ndv」を読み込みます。
- 「街区」「建物」レイヤーポリゴン内部属性「町名」フィールドにデータベースリンク設定を行います。
- 「街区」レイヤーポリゴン内部属性「街区番号」フィールド「表示」チェックボックスをOn(背景時も)にします。
- 「建物」レイヤーポリゴン内部属性「住居番号」フィールド「表示」チェックボックスをOn(背景時も)にします。
- 「街区」レイヤーを前景レイヤーにし、コマンドラインバーに「C:\sample8\script46\pcmCreateSchema.js△0△0」(△は半角スペース)と記述し、実行します。
- 保存先とスキーマファイル名「街区.xml」を指定し、保存します。
- 「建物」レイヤーを前景レイヤーにし、コマンドラインバーに「C:\sample8\script46\pcmCreateSchema.js△0△0」(△は半角スペース)と記述し、実行します。
- 保存先とスキーマファイル名「建物.xml」を指定し、保存します。
- 6.と8.で保存したスキーマファイル「街区.xml」「建物.xml」をメモ帳等エディターで開きます。
「街区.xml」に「建物.xml」の記述文を追加するかたちで、主に、
- 「建物.xml」の<LayerTitle>タグを「街区.xml」へコピーします。
レイヤータイトルを変更する場合は、<Title>タグ内にある<PcmName>タグのタイトルを変更します。
- インポートしないフィールドは、<FieldDef>タグ内にある<PcmName>タグのタイトルを「@Delete」に変更します。
- インポートファイルになく、追加したフィールドは、<FieldDef>タグ内にある<OrgName>タグのタイトルを「@Create」に変更します。
「街区.xml」の<ArcFieldDef>タグ内の<OrgName>タグのタイトルを「@Create」に変更します。
- 「建物.xml」の
<PolFieldDef>
<OrgName>住居番号</OrgName><PcmName>住居番号</PcmName>
:
</PolFieldDef>
と
<PolFieldDef>
<OrgName>建物名称</OrgName><PcmName>建物名称</PcmName>
:
</PolFieldDef>
を「街区.xml」へコピーします。
- 修正した「街区.xml」を「sample.xml」ファイル名で保存します。
- [インポート]-[汎用/GIS]-[シェープ]-[ArcViewシェープファイル]を実行します。
- [シェープファイルインポート]ダイアログボックスで、10.で保存したインポートスキーマファイル「sample.xml」を指定して、実行します。
- 描画パラメーターファイル「pen.pcp」を読み込みます。
- 「街区A」「建物A」レイヤーアーク内部属性「参照する描画パラメーターセット」に「\pen」を指定する必要はありますが、色描画されます。
- データベースファイル「町名辞書.ndv」を読み込みます。
- 「街区A」「建物A」レイヤーポリゴン内部属性「町名」フィールドにデータベースリンク先の属性が表示されます。
- これで、「sample_加工.pcm」と同じように表示する事ができます。
|