1

ArcMap の組み込みハイパーリンク スクリプト機能を使用して、ユーザーが相対パスを使用してマップ フィーチャにリンクされたドキュメントを開くことができるようにしようとしています。つまり、リモート サイトに展開される定義済みのディレクトリ構造がありますが、各サイトは異なるドライブ文字を使用する場合があります。これまでのコードは、リモート サイトが W: ドライブ文字を使用している場合にのみ機能します。

import webbrowser
def OpenLink ( [HLINKDOC] ):
  path = "W://GIS//Documents//" + [HLINKDOC]
  webbrowser.open(path)
  return

ArcMap プロジェクト (.mxd ファイル) 自体は、W:\GIS\Projects\ArcMap\GISproject.mxd として保存されます。HLINKDOC は、「BLD000016.html」のような文字列を含む建物レイヤーのフィールドです。Hyperlink Base プロパティで "..\" 規則を使用しようとしましたが、うまくいきませんでした。

OK、コードを次のように編集しましたが、まだ機能していません。私は正しい軌道に乗っていますか?

import sys, os, webbrowser
def OpenLink ( [HLINKDOC] ):
  fullpath = os.path.dirname(sys.argv[0])
  drive = os.path.splitdrive(fullpath)[0]
  path = drive + "//GIS//Documents//" + [HLINKDOC]
  webbrowser.open(path)
  return

アップデート:

どうやら、以前は "..\" 規則を適切に実装していなかったようです。解決策を要約すると、「ハイパーリンク」セクションの「表示」タブで「スクリプト」オプションを使用していません。代わりに、「ドキュメント」オプションを選択しました。次に、「....\Documents」を「Hyperlink Base」パラメーターに入力しました。2 つの異なるドライブ文字にある GIS ルート フォルダーでテストしたところ、デフォルトのブラウザーは、MXD プロジェクトが配置されている同じドライブ文字に対応する html ファイルを開きます。

4

0 に答える 0