サポート > PC-MAPPING ヒント集 > ベクターデータ > ポリゴン代表点
ポリゴン代表点
ポリゴン構造に代表点情報を付加する事で、ポリゴン属性位置の移動や、ポリゴン属性の引き出し線による表現が可能となります。
また、ポリゴンに対して[選択]-[表示]-[選択ベクターに旗立て]を行うと、旗マークはポリゴン「代表点」に置かれます。
※「文字ボックス型」や「注記属性型」を併用してポリゴンの属性表示位置を変更する場合は、「代表点に表示」のチェックをONにして下さい。
■ ポリゴン代表点を作成
  1. [編集]-[ポリゴン]-[生成]-[ポリゴン生成]を選択します。
    [ポリゴン生成]ダイアログボックスのオプション[ポリゴン代表点を作成する]チェックボックスをONにしてコマンドを実行します。

  2. [レイヤーエキスパート]-[ポリゴン]パネルの表示設定で、"代表点"のチェックをONにしておいて下さい。

  3. ポリゴンの代表点が作成されている事が確認できます。

■ ポリゴン代表点自動補正モード
「ポリゴン代表点を作成する」を実行時、更に、「作成した代表点を固定する」オプションの設定が可能です。
主として、巨大で複雑なポリゴンがあると、中心点位置の確定に大きな時間を要する事から、高速にポリゴンを生成、また、その後の形状編集での代表点位置補正にかかる時間を節約するための機能です。
使用するデータによっては"作成した代表点を固定する"チェックをONにした方が良いケースもあります。

作成した代表点を固定する
OFFの場合、アークの補間点移動等があった場合は、自動的に代表点位置は補正されます。
これを自動補正モードと呼んでいます。
ONの場合、生成された代表点位置は固定され、アークの補間点移動等があっても、代表点位置は補正されません。

■ ポリゴン代表点処理
[編集]-[ポリゴン]-[代表点]-[ポリゴン代表点処理]を実行することで、既存のポリゴンに対して代表点の詳細設定を行います。
全ての処理に対して、前もってポリゴンを選択してあれば、その選択されたポリゴンに対してのみ、処理を行う事が可能です([選択されているポリゴンのみを対象とする]チェックボックス)。
ポリゴン代表点を(再)生成する
代表点が既にある場合は再作成し、代表点がない場合は作成します。
更に、[作成した代表点を固定にする]チェックボックスで、固定するか否かを設定できます。
ポリゴン代表点を削除する
既存の代表点を削除します。
ポリゴン代表点を自動補正モードにする
代表点が固定になっている場合、自動補正モードに変更します(アークの補間点移動などがあった場合は、自動的に代表点位置は補正されます)。
ポリゴン代表点を固定する
代表点が自動補正モードになっている場合、固定に変更します(生成された代表点位置は固定され、アークの補間点移動などがあっても、代表点位置は補正されません)。
ポイント位置にポリゴン代表点を設定する
ポリゴンに完全に含まれる位置にポイントがある場合、そのポイント位置に代表点を設定します。
ポイントが別レイヤーにある時は、ドロップダウンリストでポイントがあるレイヤーを選択して下さい。
更に、作成した代表点を固定にするか否か設定できます。
現在のポリゴン代表点からポイントを生成する
既に生成され、また、移動調整されているポリゴンの代表点からポイントを生成します。

■ ポリゴン代表点移動
ポリゴンの領域内で代表点の位置を移動します。
[編集]-[ポリゴン]-[代表点]-[ポリゴン代表点移動]を実行すると、カーソルが十字カーソルに変わり、処理モードになりますので、ポイント移動と同じ要領で、代表点の移動を行って下さい。
※[ポリゴン代表点移動]を実行すると、代表点(赤丸)を強制的に表示されますが、もともと[ポリゴン]パネルで「代表点」のチェックがOFFの場合は、処理終了後、非表示に戻ります。

■ iniファイルによる設定
Ver.8.021〜
ポリゴン生成時のオプション、及び、「ポリゴン代表点処理」内の「ポリゴン代表点を(再)生成する」において、代表点を生成する方法を従来の「スキャンライン方式」から「包含最大円を求める方式」に変更しました。
pcm.iniにおいて
[SystemEnvMgr]
PolyLabelMode=0

で従来モードにする事が可能です。
▼「スキャンライン方式」による代表点
▼「包含最大円を求める方式」による代表点(=デフォルト)

■ キーリストによる設定
対象レイヤーの「キーリスト」パネルに以下のキーと値を設定します。

キー:@PolAttrCPos
「値=0」の場合、ポリゴンの属性表示に関して、「代表点に表示」チェックON/OFFの設定に関係なく、そのポリゴンに中心点があって、表示範囲内にその中心点があってもなくても、表示されているポリゴン内の適当な位置に表示します。
また、印刷プレビュー・印刷時も、印刷範囲内にその中心点があってもなくても、表示されているポリゴン内の適当な位置に印字するため、ポリゴンの属性表示の位置とは異なる場合があります。
▼ @PolAttrCPos=0(赤点はポリゴン代表点)

「値=1」の場合、ポリゴンの属性表示に関して、「代表点に表示」チェックON/OFFの設定に関係なく、そのポリゴンに中心点があって、表示範囲内にその中心点があってもなくても、代表点に表示するため、画面内に属性表示されない場合があります。
また、印刷プレビュー・印刷時も、印刷範囲内にその中心点があってもなくても、代表点に印字します。
▼ @PolAttrCPos=1(赤点はポリゴン代表点)

「値=2」の場合、 ポリゴンの属性表示に関して、「代表点に表示」チェックON/OFFの設定に関係なく、そのポリゴンに中心点があって、表示範囲内にその中心点があれば中心点位置に、表示範囲内にその中心点がなければ表示されているポリゴン内の適当な位置に表示します。(※1)
なお、1つのポリゴンが複数に分割されて表示されるケースでは、それらのすべての(分割された)ポリゴンに属性が表示されます(以下画像の赤丸箇所)。
また、印刷プレビュー・印刷時も、印刷範囲内にその中心点がなければ、表示されているポリゴン内の適当な位置に印字するため、ポリゴンの属性表示の位置とは異なる場合があります。(※2)
▼ @PolAttrCPos=2(赤点はポリゴン代表点)

(※1) 機構上、特殊な再配置処理を行っているため、回転角度型などが無効になります。
このような場合は「@PolMultiAttr」キーを使用してご確認ください。
(※2) 印刷範囲内より広めにポリゴン処理を行っているため、たまたま外側に中心点ができてしまうと、印字されないことがあります。
このような場合は[印刷]-[印刷設定]-[ウィンドウズプリンター]の「ウィンドウズプリンター出力設定-1」ダイアログボックスにある「ポリゴンを厳密にクリッピング」をONにしてご確認ください。

キー:@PolMultiAttr
「値=1」の場合、ポリゴンの属性表示に関して、「代表点に表示」チェックONの場合、そのポリゴンに中心点があって、表示範囲内にその中心点があれば中心点位置に、表示範囲内にその中心点がなければ、表示されているポリゴン内の適当な位置に表示します。
「代表点に表示」チェックOFFの場合、そのポリゴンに中心点があって、表示範囲内にその中心点があってもなくても、表示されているポリゴン内の適当な位置に表示します。
なお、1つのポリゴンが複数に分割されて表示されるケースでは、それらのすべての(分割された)ポリゴンに属性が表示されますが、ユニオンが設定されていて「ユニオン代表点表示」チェックONの場合、それらのすべての(分割された)ポリゴンに属性が表示されないことがあります(以下画像の赤丸箇所)。
また、印刷プレビュー・印刷時も、表示されているポリゴン内の適当な位置に印字される場合、表示範囲と印刷範囲が違うため、ポリゴンの属性表示の位置とは異なることがあります。
▼ @PolMultiAttr=1、「代表点に表示:OFF」「ユニオン代表点表示:ON」(赤点はポリゴン代表点)

▼ @PolMultiAttr=1、「代表点に表示:OFF」「ユニオン代表点表示:OFF」(赤点はポリゴン代表点)

「値=2」の場合、値:1と同様です。
ただし、1つのポリゴンが複数に分割されて表示されるケースでは、それらのすべての(分割された)ポリゴンに属性が表示されますが、ユニオンの有無・「ユニオン代表点表示」チェックON/OFFに関係なく、それらのすべての(分割された)ポリゴンに属性が表示されます(以下画像の赤丸箇所)。
▼ @PolMultiAttr=2、「代表点に表示:ON」「ユニオン代表点表示:ON」(赤点はポリゴン代表点)

▼ @PolMultiAttr=2、「代表点に表示:ON」「ユニオン代表点表示:OFF」(赤点はポリゴン代表点)

■ 補足
  • 「文字ボックス型」や「注記属性型」を併用してポリゴンの属性表示位置を変更する場合は、「代表点に表示」のチェックをONにして下さい(「引出線」の「起点」は代表点となります)。

  • ポリゴン内部属性の計算フィールドで、環境変数「$CPosX」「$CPosY」を使用する場合、代表点が生成されていないと「0」となりますので、座標値を得るには必ず生成処理を行って下さい。

  • 「ポリゴンの代表点」に関しては他にも以下のメニューがあります。
    • [編集]-[ポリゴン]-[代表点]-[ポリゴンからポイント生成]によるポイント位置、「最適化中央(標準)」
    • [編集]-[ポリゴン]-[代表点]-[ポリゴンからポイント生成]によるポイント位置、「中央」
    これらの点位置は必ず一致するわけではありません(このメニューの点の生成手法は「スキャンライン方式」となります)。
    下の例のように、ポリゴンの形状によってはポイントの位置が全く異なる場合があります。
    ●=ポリゴン代表点 / ●=[ポリゴンからポイント生成]による「中央」点 / ●=[ポリゴンからポイント生成]による「最適化中央(標準)」点

    「最適化中央(標準)」は、ポリゴン全体を処理してそれらしき中心を求めます。
    「中央」は、まず、ポリゴンを凡そ左中右上中下で9つのブロックに分けて、その中中のブロックでそれらしき中心を求めます。
    従って、「最適化中央(標準)」と「中央」は一般に異なる位置となります。
    ただし「ポリゴン内最大円の中心」は、「ポリゴン代表点処理」と点の生成手法が同じ(=「ポリゴン内最大円を求める方式」)のため、位置はほぼ同じになります。
    ※Ver.7〜:頂点数が少ない(おおむね30角形くらい)場合は、まず、凸多角形かどうかを判定して、凸多角形であればその重心を求めその位置にポイント生成されるように機能アップしました。

  • ポリゴン代表点のサイズは、[プロジェクトエキスパート]-[環境-2]のアーク矢印のサイズに連動します。
    色は、[プロジェクトエキスパート]-[環境-1]の前景、背景の各アーク矢印ペンの色に連動しています。
    色やサイズを変更したい場合は、上記2箇所で設定して下さい。