ハイパーリンクの使用
ハイパーリンクによって、フィーチャに関連するドキュメントや Web ページにアクセスできます。これらのハイパーリンクには、[ツール] ツールバーの [ハイパーリンク] ツール を使用して、フィーチャごとにアクセスできます。このトピックでは、マップ レイヤのハイパーリンク プロパティの設定および使用方法について説明します。
ハイパーリンクは、[ハイパーリンク] ツールを使用する前に定義する必要があり、次の 3 種類の定義方法があります。
- ドキュメント: [ハイパーリンク] ツールを使用してフィーチャをクリックすると、適切なアプリケーション(Microsoft Excel など)を使用して、ドキュメントまたはファイルが開きます。
- URL: [ハイパーリンク] ツールを使用してフィーチャをクリックすると、Web ブラウザに Web ページが表示されます。
- スクリプト: [ハイパーリンク] ツールを使用してフィーチャをクリックすると、フィーチャの値がスクリプトに送信されます。このオプションを使用して、カスタマイズされた振舞いを使用できるようになります。
フィールドベースのハイパーリンクを使用するか、[個別属性] ツールを使用してダイナミック ハイパーリンク定義することで、レイヤ内のフィーチャのハイパーリンクを定義できます。
これに代わるものとして、HTML ポップアップを使用するツールも提供されています。多くの場合、そちらの方が柔軟に操作できます。フィーチャをクリックすると、HTML および Web の手法を使用して追加の情報と属性がレポートされます。
フィールドベースのハイパーリンク プロパティの定義
- ハイパーリンク プロパティを設定するレイヤを右クリックして、[プロパティ] を選択します。
- [レイヤ プロパティ] ダイアログ ボックスの [表示] タブを選択します。
- [フィールドを使用してハイパーリンクを設定] チェックボックスをオンにします。注意:
このダイアログ ボックスでハイパーリンクを指定する前に、ハイパーリンク フィールドを設定する必要があります。たとえば、[ハイパーリンク] ツールでフィーチャをクリックすると必ず特定の Web ページが表示されるようにしたい場合には、まずこのレイヤの属性テーブルに、このフィーチャに関連付けられている URL を含めるためのテキスト フィールドを追加します。次に、このダイアログ ボックスでハイパーリンク オプションをオンにし、フィールドのドロップダウン リストからそのフィールドを選択して、[URL] ラジオ ボタン オプションを選択します。
ハイパーリンクを指定するために選択したフィールドの値には、ターゲット ドキュメントへの絶対パスか、ターゲット Web ページの完全 URL を含めることができます。または、値にはターゲット ドキュメントか Web ページの名前だけを含めて、[ハイパーリンク ベース] プロパティにターゲットを特定できるパスまたは URL を指定できます。
URL の「http://」の部分は省略できます。http 以外のプロトコルを使用する場合は、URL の先頭にそのプロトコルを含める必要があります。
- ハイパーリンクに使用するフィールド名を選択し、リンク タイプとして [ドキュメント]、[URL]、[スクリプト] のいずれかを選択します。スクリプトを使用する場合は、[編集] ボタンを使用して、JScript または VBScript によってスクリプトを作成します。[OK] をクリックします。注意:
このダイアログ ボックスでは、ハイパーリンクを起動するスクリプトを作成します。このスクリプトは、[形式] ドロップダウン リストで選択したスクリプト言語の規則を使って、コード化する必要があります。このスクリプトには、選択したスクリプト言語でサポートされる有効な文を含めることができます。
フィールドは、レイヤのデータ ソースのデータ タイプに関係なく、角括弧で囲まれます。ハイパーリンク スクリプトは関数として作成され、プログラミング ロジックと複数行のコードを含むことができます。
デフォルト関数では、MSDN ライブラリの一部である ShellExecute 関数が使用されます。
これらのリンクでは、Microsoft Corporation および Python Software Foundation が作成、所有、および管理している Web ページが表示されます。弊社はこれらのページの利用状況を保証できません。またはページの内容についても責任を負いません。 - [レイヤ プロパティ] ダイアログ ボックスで [OK] または [適用] をクリックします。
個別属性によるダイナミック ハイパーリンクの定義
[個別属性] ツール を使用して、ハイパーリンクをフィーチャに動的に追加することができます。ダイナミック ハイパーリンクの場合、ハイパーリンク ターゲットの指定に属性フィールドを使用しません。指定するハイパーリンク ターゲットは、個別属性表示されたフィーチャと関連付けられます。この関連付けは、レイヤに格納されます。レイヤをファイルに保存した場合にも、これらはレイヤとともに保存されます。
- [ツール] ツールバーの [個別属性] ツール をクリックします。
- ハイパーリンクを定義するフィーチャをクリックします。
- [個別属性] ウィンドウでフィーチャを右クリックし、[ハイパーリンクの追加] をクリックします。
- 必要なハイパーリンク ターゲットを指定します。
[ハイパーリンク ベース] の設定は、ダイナミック ハイパーリンクには影響をおよぼしません。
あらゆるフィーチャに対して任意の数のダイナミック ハイパーリンクを指定することができます。フィーチャに定義されているすべてのダイナミック ハイパーリンクが、個別属性のショートカット メニューの [ハイパーリンク] サブメニューに表示されます(上の手順 1 ~ 3)。このメニューで、[ハイパーリンクの管理] も利用できます。この機能では、フィーチャのダイナミック ハイパーリンクを追加および削除することができます。このリストには、フィールドベースのハイパーリンクと、フィールドベースのハイパーリンクに影響しないコマンドは表示されません。
シェープファイルからフィーチャを削除すると、ダイナミック ハイパーリンクが異なるフィーチャに接続する場合があります。これは、ArcMap はフィーチャ ID(FID)フィールドを使用してダイナミック ハイパーリンクとフィーチャを関連付けるものの、フィーチャが削除されたときは、シェープファイルの FID を再計算する必要があるためです。ハイパーリンクが常に正しいフィーチャと関連付けられるようにするには、ジオデータベースのフィーチャクラスだけにダイナミック ハイパーリンクを使用します(ジオデータベースのフィーチャは常に固有の ID 値を持ちます)。フィールドベースのハイパーリンクには、シェープファイルでのこのような制限はありません。
ハイパーリンクの使用
- [ツール] ツールバーで、[ハイパーリンク] ツール をクリックします。マウス ポインタが稲妻の形に変わります。注意:
マップ上に表示されるフィーチャのうち、ハイパーリンクが定義されているフィーチャは青(デフォルト色)で描画され、ポリゴンの場合は青のアウトラインが描画されます。ハイパーリンクが存在するフィーチャにポインタを重ねると、ポインタが稲妻の形に変わり、ポップアップ ヒントにターゲット名が表示されます。
- データ フレーム内の必要なフィーチャまたは位置をクリックして、ハイパーリンク情報にアクセスします。
- HTML Web ページなどのハイパーリンク情報が表示されます。フィーチャに複数のハイパーリンクが指定されている場合は、[ハイパーリンク] ツールでフィーチャをクリックすると、ハイパーリンクのリストがポップアップ表示されます。
- 複数レイヤのハイパーリンクを有効にしている場合、データ フレーム内の位置をクリックすると [ハイパーリンク] ダイアログ ボックスが表示され、レイヤの 1 つからフィーチャを選択できます。レイヤ名は括弧に囲まれて表記されます。
フィーチャのハイパーリンクの色の変更
ArcMap の設定を使用してハイパーリンク フィーチャの表示色を設定するには、次の手順を実行します。
- [カスタマイズ] → [ArcMap オプション] の順にクリックします。
- [一般] タブをクリックします。
- [ハイパーリンク ツールを選択したときに、クリック可能フィーチャをハイライトする] チェックボックスをオンにします。
- [色] ドロップダウン メニューをクリックして、ハイライト用に別の色を指定します。
ハイパーリンク パスの管理
マップのプロパティの一部としてハイパーリンク ベースを指定することができます。ハイパーリンク ベースとは、ドキュメントまたは URL に対するフィールドベースのハイパーリンクに使用するベースのパスまたは URL です。たとえば、ハイパーリンク ベースを D:\Data に設定した場合は、ドキュメントへのハイパーリンクとして使用するフィールドの値に、D:\Data を含める必要はありません。ファイルの名前だけを含めることができます。このプロパティを使用すると、ハイパーリンクの管理が簡単になります。ターゲットの場所が変わった場合は、ハイパーリンク ターゲットを指定するフィールドの各値を編集しなくても、この設定を編集するだけで済むからです。
[ハイパーリンク ベース] プロパティは、[マップ ドキュメント プロパティ] ダイアログ ボックスで指定します。[ファイル] → [マップ ドキュメント プロパティ] の順にクリックして開きます。[ハイパーリンク ベース] プロパティはマップ ドキュメントごとに 1 つあります。ターゲットの値がマクロに送信されるように指定すると、この設定は無効になります。また、この設定はダイナミック ハイパーリンクには影響しません。
このデフォルトを上書きし、スラッシュが自動的に追加されないようにできます。この設定は、Advanced ArcMap Settings ユーティリティ(<インストール ドライブ>:\Program Files\ArcGIS\Desktop10.2.1\Utilities)を起動して、[その他] タブを表示することで確認できます。デフォルトを上書きすると、長いパスや URL を操作しやすくなります。
たとえば、ハイパーリンク ベースの設定に http://www.example.com/index.cfm?parameter=1234 のような長い URLを使用する場合は、http://www.example.com をベースに指定し、その後に続く引数(index.cfm?parameter=1234)をすべてハイパーリンク フィールドに格納する必要があります。ただし、デフォルトを無効にして、URL のほとんどの部分(http://www.example.com/index.cfm?parameter=)をベースに指定し、URL の最後の部分(1234)だけをハイパーリンク フィールドに格納することもできます。
デフォルトを無効にする場合でも、[マップ ドキュメント プロパティ] に指定するハイパーリンク ベースがスラッシュ文字で終了する場合、ArcMap はスラッシュを維持します。したがって、デフォルトを無効にする場合は、ハイパーリンク ベースに手動でスラッシュを追加できます。デフォルトを無効にする設定は、現在のコンピュータに対してのみ適用されます。作業中のマップ ドキュメントのプロパティとしては保存されません。
相対パスを使用したハイパーリンクの作成
ネットワーク リソースへのアクセス権を持たないユーザに、ハイパーリンクが含まれたマップを配布したいことがあります。マップにデータへの相対パスを保存できるのと同様に、マップへの相対パスを参照するハイパーリンクを指定することもできます。
同一フォルダにあるドキュメントへのパスを指定するには、ドキュメントの名前を入力します。下の例では、「directions.bmp」と入力します(\ やドライブ文字接頭辞を含めません)。
ファイル システムのマップの場所のすぐ下にあるフォルダへのパスを指定するには、パスをフォルダ名から開始します(ここでも \ やドライブ文字接頭辞を含めません)。たとえば、次の例では「Graphics\directions.bmp」と入力します。
ハイパーリンクされたドキュメントを開く方法のパラメータによる制御
ドキュメントへのハイパーリンクには、プログラムがどのようにドキュメントを開くかを定義するパラメータを含めることができます。たとえば、Adobe Reader で PDF の特定のページを開くようにパラメータを指定できます。これにより、マップ フィーチャから同じドキュメント内の別のページにハイパーリンクできます。ソフトウェア パッケージ(Microsoft Word、Microsoft Excel、Adobe Reader など)ごとに固有のコマンドがあるので、使用できるパラメータと構文については、ドキュメントを開くのに使用するソフトウェア パッケージのマニュアルをご参照ください。
通常、これらのパラメータはコマンド ラインで使用するようになっています。たとえば、PDF ドキュメントの 5 ページ目を開く場合のコマンドは次のようになります。
- C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe /A Page=5=OpenActions c:\temp\PopulationData.pdf
ここで
- C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe はソフトウェアの場所、/A Page=5=OpenActions は開く場所を指定するパラメータ、c:\temp\PopulationData.pdf はファイルの場所を表します。
ArcGIS は、これらのパラメータをコマンド ラインのようには読み取りません。代わりに、パラメータからファイル パスを分けるための特別な区切り文字として「?」(疑問符)を使用します。前の例と同じドキュメントおよびページのハイパーリンクは、ArcGIS では次のようになります。
- c:\temp\PopulationData.pdf ?/A Page=5=OpenActions
「?」は、パスとパラメータの間の区切り文字として働きます。
高度なハイパーリンク機能
フィールドベースのハイパーリンクは、[個別属性] ツールで使用するときに、システムレベルおよび現在のユーザ レベルの Windows 環境変数をサポートします。環境変数は、ハイパーリンクで使用する前にコンピュータで設定しておく必要があります。ArcGIS で環境変数を使用する場合は、変数をパーセント記号ではなくドル記号で修飾する必要があります。たとえば、%VARTEST% ではなく $VARTEST を使用します。
スクリプト コード内にディスパッチ オブジェクトを作成して、カスタム ライブラリから関数を呼び出すことができます。これによって、ディスパッチ オブジェクトを使用して、ハイパーリンク スクリプトを通して ArcObjects にアクセスできます。さらに、IFeature または IFeatureLayer(あるいはその両方)をディスパッチ オブジェクトに渡して、該当するフィーチャのハイパーリンクを起動することもできます。
ディスパッチ オブジェクトを作成するハイパーリンク スクリプトの例を次に示します。
ディスパッチ オブジェクトを使用して、ハイパーリンク スクリプトを通して ArcObject にアクセスします。
Function OpenLink ( {IFEATURE}, {IFEATURELAYER} )
Dim hlauncher
Set hlauncher = CreateObject("Hyperlink_Lib.Launcher")
hlauncher.Launch {IFEATURE}, {IFEATURELAYER}
End Function
この例では、ユーザの作成した Hyperlink_Lib ライブラリから関数 Launch を呼び出します。