PinMapを使ったラベルの表示

PinMapを使って、ベクタデータの属性をラベルとして表示できます。ここでは、ポイントデータの例で説明します。
 
<手順>
1.Display/Spatial Dataを選択します。
2.ポイントデータを表示しておきます。
3.次に、Add Database Pinmapアイコンを押します。


4.File/Object Selectionウィンドウで、ポイントオブジェクトのサブオブジェクトであるPointDataを選択します。PinMapでは、このようにデータベース(テーブルを含む)が処理対象になります。
5.コントロールウィンドウが出ますので、以下のように設定します。

ここで、Internalとはベクタデータが持っている内部テーブルです。x, yというフィールドが中にあります。表示したいフィールド(ここではTABLE.Field)はInternalの中にないので、Label$で指定します。Sprintfを使います。%sは文字列という意味(整数の場合、%d)。

(指定のし方)
フィールドは、Insert/Fieldを使うのが便利。
Label$は、Insert/Symbol/Stringにあります。
sprintfは、Insert/Function/Stringにあります。
シンボルのサイズ、種類はSymbolのSpecifyボタンを押して変えます。
ラベルの字の大きさは、Base Styleボタンを押して、Ascender Heightで調整できます。ラベルの色は同じくColorボタンで変えられます。
OKボタンを押し、Redrawするとラベルとシンボルが表示されます。
コントルール窓

表示結果

PinMapはポイントだけでなく、ポリゴンについても可能です。
ポリゴンデータの場合は、X,Y座標を与えるのに、POLYSTATSというテーブルを使うのが便利です。表示の前に、Prepare/Vector/Standard Attributesを実行しておきます。これによりPOLYSTATSテーブルが作成されます(すでにあれば図形などの修正に対して更新されます)。実行の際、Compute maximum polygonとCompute point in polygonのラジオボタンは押しておきます。
後の設定はポイントの場合と似ています。サブオブジェクトはPolyDataを選択します。
 
ポリゴン図形の場合のラベル表示例


(Query文)

XCoord=POLYSTATS.PointInPolyX
YCoord=POLYSTATS.PointInPolyY
Label$=sprintf("%d", POLY.CODE)
DrawSymbol = 1
 
XCoord, YCoord, DrawSymbolは、Insert/Symbol/Numericメニューにあります。
PointInPolyXのフィールドが、POLYSTATSテーブルにない時は、CentX, CentYでも構いません。
ラベルの前にデフォルトの表示位置が出ますが、気になる時は、SymbolのSpecifyボタンを押して、Heightを0にします。