サポート > PC-MAPPING ヒント集 > その他 > パス設定
パス設定
■ 「外部ファイル」のパス設定
「プロジェクトに登録されているレイヤーパスにデータがない」場合、プロジェクトファイルを基準とした相対パスで検索します。
  1. プロジェクトファイルがあるドライブで、記述したパスのフォルダーがあれば、そのフォルダー内のファイルを検索します。
  2. プロジェクトファイルがあるドライブ・フォルダーで、記述したパスのフォルダーがあれば、そのフォルダー内のファイルを検索します。
  3. プロジェクトファイルがあるドライブ・フォルダー内のファイルを検索します。
  4. 1.と3.の間で、フォルダ階層をプロジェクトパスとレイヤーパスにそれぞれ分離、再構成して組み立て直し、検索します。
*1 これらはレイヤーだけでなく、データベース、広域イメージ、広域ベクターなど、外部ファイルのパスを持つものは上記のように検索します。
*2 プロジェクト保存の際の相対・絶対パスは、[プロジェクトエキスパート]-[署名と権限]パネルの「外部ファイルを相対パスで保存」チェックに依存します。
*3 ただし、絶対パスで保存されても、読み込み時は以下の「システム環境設定」における相対パス検索範囲設定で、相対的に検索されます。

▼[システム環境設定]-[操作3]パネル

プロジェクトファイル「C:\GISData\下水道管理\下水道管理.pcm」にレイヤーファイル「E:\Layer\下水管.nav」が登録されていて、このレイヤーファイルを「C:\GISData\下水道管理\Layer\下水管.nav」へ移動したとしても、プロジェクトはこのレイヤーを検索する事ができます。

■ 「リレーション」でのパス設定
「リレーションに記述されているパスにデータがない」、「リレーションのパスがフルパス記述されていない」場合、以下の手順で検索を行ないます。
@「リレーション」フィールドがベクターの内部属性にあり、そのレイヤーが内部データの場合
「リレーション」フィールドがデータベースにあり、そのデータベースが内部データの場合
プロジェクトファイル(*.pcm)を基準とした相対パスで検索します。
  1. プロジェクトファイルがあるドライブで、記述したパスのフォルダがあれば、そのフォルダー内のファイルを検索します。
  2. プロジェクトファイルがあるドライブ・フォルダーで、記述したパスのフォルダーがあれば、そのフォルダー内のファイルを検索します。
  3. プロジェクトファイルがあるドライブ・フォルダー内のファイルを検索します。
  4. 1.と3.の間で、フォルダ階層をプロジェクトパスとリレーションパスにそれぞれ分離、再構成して組み立て直し、検索します。

A「リレーション」フィールドがベクターの内部属性にあり、そのレイヤーが外部データの場合
レイヤーファイル(*.nav)を基準とした相対パスで検索します。
  1. レイヤーファイルがあるドライブで、記述したパスのフォルダーがあれば、そのフォルダー内のファイルを検索します。
  2. レイヤーファイルがあるドライブ・フォルダーで、記述したパスのフォルダがあれば、そのフォルダー内のファイルを検索します。
  3. レイヤーファイルがあるドライブ・フォルダー内のファイルを検索します。
  4. 1.と3.の間で、フォルダ階層をレイヤーパスとリレーションパスにそれぞれ分離、再構成して組み立て直し、検索します。

B「リレーション」フィールドがデータベースにあり、そのデータベースが外部データの場合
データベースファイル(*.ndv)を基準とした相対パスで検索します。
  1. データベースファイルがあるドライブで、記述したパスのフォルダがあれば、そのフォルダー内のファイルを検索します。
  2. データベースファイルがあるドライブ・フォルダーで、記述したパスのフォルダーがあれば、そのフォルダー内のファイルを検索します。
  3. データベースファイルがあるドライブ・フォルダー内のファイルを検索します。
  4. 1.と3.の間で、フォルダー階層をデータベースパスとレイヤーパスにそれぞれ分離、再構成して組み立て直し、検索します。

C 上記@〜Bの1.から4.でも見つからない場合
PC-MAPPINGの起動ディレクトリ(-prmdirオプションで起動されている時は、そのフォルダー)を検索します。

プロジェクトファイル「C:\GISData\下水道管理\下水道管理.pcm」にリレーション「C:\GISData\下水道管理\pdf\M10-1.pdf」と記述されている場合、これをE:\にコピーしてそこから起動した場合、「E:\GISData\下水道管理\下水道管理.exe」はリレーション「E:\GISData\下水道管理\pdf\M10-1.pdf」を検索する事ができます。

【特殊なパス設定】
%*******%のように%で囲われた部分をパス名として、現在アクティブなドキュメントのファイルパスとの相対で検索します。
それでも見つからない、あるいは、アクティブなドキュメントがない場合は、pcm.exeの起動フォルダー、あるいは、-prmdir指定のフォルダーを探して見つかったパス名と置き換えます。
また、パスに環境変数を利用したい場合、以下のように設定する事ができます。
環境変数
%ProgramFiles%C:\Program Files
%SystemRoot%C:\WINNT
%TEMP%C:\temp
%USERPROFILE%C:\Documents and Settings\username
%USERPROFILE%\下水道管理のショートカット

C:\Documents and Settings\username\下水道管理のショートカット

■ 「プレゼンテーションビューアーパック(PVP)」のリレーションでのパス設定
「リレーションに記述されているパスにデータがない」、「リレーションのパスがフルパス記述されていない」場合、プロジェクトファイルを基準とした相対パスで検索します。
その手順は以下のようになります。
  1. PVPファイルがあるドライブで、記述したパスのフォルダーがあれば、そのフォルダー内のファイルを検索します。
  2. PVPファイルがあるドライブ・フォルダーで、記述したパスのフォルダーがあれば、そのフォルダー内のファイルを検索します。
  3. PVPファイルがあるドライブ・フォルダー内のファイルを検索します。
  4. 1.と3.の間で、フォルダー階層をPVPファイルパスとリレーションパスにそれぞれ分離、再構成して組み立て直し、検索します。
*1 リレーション時に起動するアプリケーションがインストールされていない、関連付けされていないなど、上記とは関連のないエラーが発生する場合がありますので、注意して下さい。
*2 リレーションパスの複雑化はリレーション起動時のスピードに影響があります(ファイル検索に時間がかかるため)。
1.の段階で検索きるようにPVPファイルのフォルダー内に関連ファイル・フォルダーがくるような階層にされた方が良いでしょう。

■ プロジェクトの外部ファイルの相対(絶対)パス化
[システム]-[プロジェクト]-[プロジェクト]-[プロジェクトの外部ファイルの相対(絶対)パス設定]で、指定のプロジェクトに登録されているレイヤーやDB、広域イメージ、広域ベクター等外部ファイルのパスをそのプロジェクトファイルのパスからの相対パスに置き換える事ができます。
大量の外部ファイルがある場合、上記のような検索機能を使うと読み出し時に時間がかかりますが、このメニューにより軽量化が計れ、また、他のマシンにデータを移行する際には、よりスムーズに移行できます。
▼ 絶対パス→相対パス

▼ 相対パス→絶対パス

※ただし、外部ファイルのパスの取り扱いは原則相対パスで行っているので、変換後プロジェクトを保存し直すと再び相対パスに変更される場合があります。

■ iniファイルによる設定
  • 外部ファイルとして保存したレイヤーやDBは、前述「■ 「外部ファイル」のパス設定」の1〜4の順にファイルを検索しますが、pcm.iniファイルで
    [PcmApp]
    RefPathLevel=1

    を記述する事で1.までしか検索しない、つまり、パスに記述された通りの場所にファイルがなければ呼び出しエラーとなります。

  • Ver.8から、UNC(=\\付きのネットワーク参照)に関しては(状況によっては途方もなく時間がかかるという事で)、「絶対パス」と見なして、それ以外の相対的な探索しない仕様になっています。
    [PcmApp]
    RefPathLevelEx=1

    を記述する事でこの制限をなくし、ネットワークパスも関係なく検索する事ができます。
    ※ネットワーク上のパス先にデータが存在した場合でも最初のセッション開始時はそれなりに時間がかかり、存在しない場合、PC-MAPPINGの設定で相対パス化して探しに行くため時間がかかるだけでなく、Windowsのエクスプローラーでのサーバー参照エラーと類似して、一通りの参照がエラーで戻ってくるまでほとんどフリーズした状態になる場合がありますので、この制限を外した場合はその旨をご了承下さい。
    【Ver.8.020〜】
    この設定は、[システム環境設定]-[操作3]パネル内の「\\で始まるネットワークパスも対象とする」チェックボックスに対応します。

■ 補足
リンク切れファイル保全モード
▼[システム環境設定]-[操作3]パネル内

プロジェクト起動時に外部ファイルが(ファイルが存在しない等で)読み込まれなかったケースに関して、従来は、その旨メッセージを出して、読み込まれたものだけでのプロジェクトを生成していました。

例えば、以下のように「みなかみ町(.nav)」「沼田市(.nav)」の2レイヤーが外部ファイルとして登録されているプロジェクトがあるとします。

なんらかの理由で「みなかみ町」が読み込めなかった場合、保全モードを使用しないと「沼田市」だけが存在するプロジェクトとして開かれます。
▼「使用しない」とした場合に、パス先にレイヤーファイルがなかった際のエラーメッセージ

この状態(=リンク切れファイルが欠けた状態)で(正しいファイルを改めて読み込まないまま)プロジェクトを保存すると、読み込まれなかった外部ファイルに関する情報はプロジェクトから抹消されてしまいます。
これを回避するため、「使用する」・「使用する(エラーメッセージを表示する)」を選択する事で、読み込まれなかった外部ファイルのレイヤー・データベース・描画パラメーターに関して、外部ファイルの情報のみを保持した空のレイヤー・データベース・描画パラメーターを生成してプロジェクトに登録し、このプロジェクトが保存される際、外部ファイルの情報が保全されるようになります。

▼「使用する(エラーメッセージを表示する)」とした場合に、パス先にレイヤーファイルがなかった際のエラーメッセージ

なお、この空のオブジェクトはプロジェクトワークスペースでは【BROKEN LINK】でマークされたパス名が表記されます。

[レイヤーエキスパート]-[イメージ]パネルでの探索スキップ
Ver.7.512[BN.304790]〜
[レイヤーエキスパート]-[イメージ]パネルに登録されたイメージが指定パスに見つからない場合、前述のようにプロジェクトファイルとの相対パスや-prmdirのフォルダーとの相対パスなどを探すので、本来のパスがネットワークドライブ上にあると、ネットワークのタイムアウトまで待たされる事がありますが、[レイヤエキスパート]のイメージタブをクリックする際、SHIFTキー押下でこの探索をスキップするようにしました。

パス設定が有効にならない場合
ショートカットのプロパティに「作業フォルダー」項目があり、プロジェクトファイルや起動オプションで指定したフォルダーではなく、このフォルダーを基準とした相対パスで検索する場合があります(OSやパソコン環境によって動作は異なります)。
パス設定が有効にならない場合、「作業フォルダー」項目にプロジェクトファイルや起動オプションで指定したフォルダーを入力してご確認下さい。

HTMLメニューバーが表示されない場合
HTMLメニューバーのファイルパスを設定する[カスタマイズ]-[HTMLメニューバーの設定]が新設されました。
ここにHTMLファイルパスを登録すると、PC-MAPPINGインストールフォルダーや起動オプション指定フォルダーに関係なく、最優先で表示されます。
詳しくは[カスタマイズ]-[HTMLメニューバーの設定]メニューのヘルプをご覧下さい。