$layer

$layer.scan.*

gdi $layer.scan.*

レイヤからオブジェクトを抽出する機能です
オブジェクトリストを使用する方法よりメモリを消費しません

gdi $layer.scan.new $protection [root]
return scanobj

レイヤのオブジェクトをスキャンするための準備をします
$protectionはスキャンするオブジェクトのプロテクションを指定します(0〜3)
-1を与えるとプロテクションをチェックしません

"root"を与えると親オブジェクトだけのスキャン指定になります
スキャンオブジェクトが返ります

gdi $layer.scan.next $scanobj
return {obj|0}

スキャンオブジェクトからオブジェクトを順に取り出します
$scanobjはスキャンオブジェクトです
オブジェクトハンドルが返ります
0が返れば抽出終了です。この時、スキャンオブジェクトは自動的に削除されます

gdi $layer.scan.delete $scanobj

スキャンオブジェクトを削除します
スキャンを最後まで行わない場合に使用します
スキャンを最後まで行った場合は自動的に削除されますのでこのコマンドを
使用してはなりません

$layer.canvas

gdi $layer.canvas

return canvas

レイヤのキャンバスハンドルを返します

$layer.copy

gdi $layer.copy $layername

return layer

レイヤ($layer)のコピーを作成しハンドルを返します
既に同一名のレイヤが存在済みの場合は0を返します
新レイヤの名称が$layername
新レイヤの表示順はlayerの直後

$layer.delete

gdi $layer.delete

レイヤを削除します
レイヤに含まれるオブジェクトも全て削除します
gdi $layer.removeと同じ機能です

$layer.display

gdi $layer.display [$onoff]

return onoff

$onoffにonかoffを与えると表示モードを変更します
$onoffにallonかalloffを与えるとキャンバスの全てのレイヤを表示on/offに設定します
$onoffを省略すると現在の表示モードを0か1で返します

$layer.logicaldisplay

gdi $layer.logicaldisplay [$onoff $from $to]

gdi $layer.logicaldisplay $index
return onoff

論理スケールについての表示ONOFFを設定します
$indexだけを与えるとその論理スケール番号の表示ONOFF設定を返します

$layer.exists

gdi $layer.exists $obj

return true

レイヤにオブジェクトが生存しているかを返します

$layer.field

gdi $layer.field [$comment]

レイヤにコメントをセットします
アーギュメントを省略すると現在の値を返します

$layer.import

gdi $layer.import $canvas

return layer

layerを指定したcanvasにコピーしレイヤハンドルを返します

$layer.name

gdi $layer.name [$newname]

return name

レイヤの名前を返します
newnameが与えられると名前を変更します
その場合レイヤハンドルは変わりません

$layer.newobject

gdi $layer.newobject

return obj

レイヤにオブジェクトを作成します
オブジェクトハンドルを返します

$layer.num

gdi $layer.num

return num

レイヤに含まれるオブジェクト数を返します

$layer.propertyarray

gdi $layer.propertyarray *varname

レイヤのプロパティを配列変数にセットします
*varnameには配列変数名を与えます
配列要素がプロパティ名です

例 gdi $layer.propertyarray prop

prop(rgb) ← "255 255 255"
prop(style) ← "dot"
prop(selection) ← "on"

下記のダイナミックプロパティ名は配列要素に存在しません
dwidth,dsymbol,dsymbolS,symbolE,dfont,dedge,dfont
ダイナミック値とスタティック値を持つプロパティの値は、最後に
"dynamic"か"static"いずれかのキーワードが付けられます
例えばfontの場合
prop(font) ← "{MS 明朝} 標準 24 static"
prop(font) ← "{MS 明朝} 標準 1000 dynamic"
尚、styleプロパティのduser/user、brushプロパティのdpattern/patternは存在します
prop(style) ← "duser 4 1000 200 1000 200"

$layer.property

gdi $layer.property $propertyname $value [...]

return layer

レイヤのプロパティをセットします
プロパティ名と値の組を必要なだけ与えます
レイヤハンドルが返ります

プロパティ名一覧

rgb hrgb brgb paint tranceparent
style appstyle brush width dwidth
font dfont mode symbol dsymbol
style2 cap edge dedge
inside static
display selection

図形タイプと有効なプロパティ

全図形共通
 表示設定 display
 セレクション世低 selection
 スクリーン座標系 static
road(道路)
 道路縁色 rgb
 道路縁面 hrgb
 道路縁線種 style
 道路面線種 style2
 道路幅 width | dwidth
 道路縁幅 edge | dedge
 道路面ブラシ brush
 道路面端末処理 cap
circle(円)fan(扇形)
 円周色 rgb
 円周線種 style
 円周線幅 width | dwidth
 円内ブラシ brush
 円内塗り潰し,ハッチング色 hrgb
 ハッチング時の背景色 brgb
 ハッチング時の透明指定 paint
arc(円弧)
 円弧色 rgb
 円弧線種 style
 円弧線幅 width | dwidth
string(ライン)
 線色 rgb
 線線種 style
 線線幅 width | dwidth
polygon(面)
 外周色 rgb
 外周線種 style
 外周線幅 width | dwidth
 面ブラシ brush
 面塗り潰し、ハッチング色 hrgb
 ハッチング時の背景色 brgb
 ハッチング時の透明指定 paint
 外周境界 inside
text(文字)
 文字色 rgb
 背景塗り潰し色 brgb
 背景塗り潰し指定 paint
 フォント,サイズ font | dfont
 原点 mode
areatext (長方形内にサイズが調整される文字列)
 外周色 rgb
 外周線種 style
 外周線幅 width | dwidth
 面ブラシ brush
 面塗り潰し、ハッチング色 hrgb
 ハッチング時の背景色 brgb
 ハッチング時の透明指定 paint
 文字色 rgb
 背景塗り潰し色 brgb
 背景塗り潰し指定 paint
 フォント,サイズ font | dfont
symbol(シンボル)
 シンボル,サイズ symbol | dsymbol
 一色指定 paint
 一色指定時の色 rgb
symbolline(特殊線)
 一色指定 paint
 一色指定時の色 rgb
 アプリケーション線種 appstyle
symbolpolygon (外周特殊線のポリゴン)
 外周線 symbollineと同じ
 面 polygon面部と同じ
square(長方形)
  polygonと同
rectangle(矩形)
  polygonと同
bmp(ラスタ)
 白部透明 transparent
view(ビュー)
  個別プロパティ無し
icon(アイコン)
  個別プロパティ無し

プロパティ名と値

rgb 前景色 RGB値
hrgb 面図形の塗り潰し、またははハッチング色RGB値
brgb 面図形ハッチングの場合の背景色またはtextの背景色RGB値
paint ハッチングの場合の背景塗り潰しon/off またはtextの背景色塗り潰しon/off
  または、onの時に
  シンボルの表示色に前景色を強制採用
  シンボルライン、シンボルポリゴンのライン色に前景色を強制採用
width 線幅 ピクセル固定値
dwidth 線幅 マップ単位での幅(ダイナミック線種)
cap roadの終端処理 0:解放 1:始点閉止 2:終点閉止 3:始終点閉止
edge roadの道路縁幅 ピクセル固定値
dedge roadの道路縁幅 マップ単位での幅(ダイナミック)
tranceparent bmpの場合の白部透明on/off
  その他の図形は半透明
inside polygon,symbolpolygon,square の場合の外周線描画モード
  off:中心に描画(デフォルト)、on:内側に描画
displa 表示on/off
selection セレクション可否on/off
static on:描画位置スクリーン固定 off:通常描画
  ただしラバーバンドオブジェクト(アニメーションオブジェクト)に有効
style 線種 null solid dot dash dashdot dashdotdot user duser
  user の場合はデータ数 可視線長 隠線長 ...を続ける
  例: style user 4 10 5 10 5
  duserの場合もuserと同であるが、線長をマップ単位で与える
style2 roadの場合の道路面線種
mode textの場合の原点位置
  X方向 L:左 C:中心 R:右
  Y方向 T:上 C:中心 B:下
  XY方向の組み合わせで指定 例:LC
brush 面の塗りつぶし,ハッチングパターン
  solid  塗りつぶし null: 空 leftdown: 左下がり斜線 rightdown: 右下がり斜線
  cross  クロス cross45: 45度クロス horizontal: 水平線 vertical:垂直線
  pattern シンボルパターン シンボル名とサイズを続ける 例:brush pattern 黒丸 12
  dpattern ダイナミックシンボルパターン patternと同。ただしサイズはマップ単位
  bmp    ビットマップパターン bmpファイル名を続ける 例:brush bmp mypattern.bmp
font textのフォントとサイズ 例:font MS ゴシック 標準 12
dfont fontと同。ただしサイズはマップ単位(ダイナミックフォント)
symbol symbolタイプ場合のシンボル名とサイズ 
  例:symbol 赤丸 20
dsymbol symbolと同。ただしサイズはマップ単位(ダイナミックシンボル)
appstyle symbolline,symbolpolygonの場合のアプリケーションスタイル
  スタイル数のあとにその数分だけのスタイル名を続ける
  例:appstyle 2 破線スタイル1 シンボルスタイル2
  アプリケーションスタイルは[gdi $canvas.newstyle]コマンドであらかじめキャンバスに」作成
  されている必要がある

$layer.remove

gdi $layer.remove [$obj]

[return deleted]

$objを省略するとレイヤを削除します
  レイヤに含まれるオブジェクトも全て削除します
  gdi $layer.deleteと同じ機能です
  リターン値はありません

$objを与えるとレイヤに含まれるオブジェクトを削除します
削除されたら1が返ります。失敗したら0が返ります。
  レイヤハンドルが既知でかつオブジェクトの生存に確信が無いときに使用します
  レイヤハンドルが不明でかつオブジェクトの存在が確定している時は
   gdi $obj.remove
  を使用してください

$layer.selection

gdi $layer.selection [$onoff]

セレクションの可否を変更します
onかoffを与えます
アーギュメントを省略すると現在の設定が0か1で返ります

$layer.symbol

gdi $layer.symbol

return symbol

レイヤの図形タイプがシンボル、シンボルライン、シンボルポリゴンの場合にのみ有効です
設定されているシンボルリソースハンドルを返します(symbolプロパティ)
ただしシンボルラインとシンボルポリゴンの場合にはappstyleが未設定の場合にだ
け有効です

$layer.type

gdi $layer.type

return type

レイヤの図形タイプを返します

  リターンされる図形タイプ文字列

  road
  circle
  arc
  fan
  string
  polygon
  text
  areatext
  symbol
  symbolline
  symbolpolygon
  bmp
  rectangle
  square
  view

オブジェクトから図形タイプを直接(レイヤハンドルを介さず)求めるには
 gdi $obj.type
を使います。

$layer.tranceparent

gdi $layer.tranceparent $onoff

図形タイプがbmpのレイヤにのみ有効です
onかoffを与えてイメージの白部透明モードを変更します

$layer.zorder

gdi $layer.zorder $where [$originlayer]

レイヤ表示順を設定します

gdi $layer.zorder {bottom | top}

レイヤ表示順を最前面か最背面に設定します
  bottom:レイヤを底面(最初に表示)に移動
  top :レイヤを表面(最後に表示)に移動

gdi $layer.zorder {before | after} $originlayer

レイヤ表示順を指定レイヤの前後に設定します
  before:$layerを$originlayerの前(先に表示)に移動
  after :$layerを$originlayerの後(後に表示)に移動

$layer.objects

gdi $layer.objects [$protectionlevel] [root]

return olist

レイヤ内のオブジェクトから指定レベルのプロテクション($protectionlevel)が設定
されているオブジェクトのみをオブジェクトリストに格納します
$protectionlevelを省略するか-1を与えるとすべてのオブジェクトを返します
アーギュメントに"root"が現れると子供オブジェクトは無視されます

$layer.editlock

gdi $layer.editlock

レイヤを修正禁止にします
プロテクションと異なり、修正可に変更できません
編集権限による禁止設定です