超链接可用于访问与要素关联的文档或网页。使用工具工具条上的超链接工具 可访问各要素的超链接。本主题将介绍如何设置和使用地图图层的超链接属性。
使用超链接工具之前,您需要先进行定义,超链接可定义为以下三种类型中的任一种:
- 文档 - 使用超链接工具单击要素时,将在相应的应用程序(例如 Microsoft Excel)中打开关联的文档或文件。
- URL - 使用超链接工具单击要素时,将在 web 浏览器中启动一个 web 页面。
- 脚本 - 使用超链接工具单击要素时,要素值将发送到脚本。此选项可启用对自定义行为的使用。
可以通过使用基于字段的超链接或使用识别工具定义动态超链接来为图层中的各要素定义超链接。
定义基于字段的超链接属性
- 右键单击要设置超链接属性的图层,然后选择属性。
- 在图层属性对话框上,选择显示选项卡。
- 选中使用字段支持超链接。
- 选择希望用于超链接的字段名以及链接类型 - 文档、URL 或脚本。如果选择使用脚本,则可以单击编辑按钮以使用 JScript 或 VBScript 来编写脚本。单击确定。
- 在图层属性对话框中,单击确定或应用。
通过识别结果定义动态超链接
可以使用识别工具 向要素动态添加超链接。如果选择了动态超链接,您将无法通过属性字段提供超链接目标信息。指定的超链接目标与被识别的要素相关联。关联信息存储在图层中。如果将图层存储到文件中,这些关联信息也将存储在图层中。
- 单击工具工具条上的识别工具 。
- 单击要为其定义超链接的要素。
- 在识别窗口中右键单击该要素,然后单击添加超链接。
- 指定所需超链接目标。
您可以为任何要素指定任意数量的动态超链接。为要素指定的所有动态超链接都列于识别结果快捷菜单的超链接右拉列表中(上述步骤 1–3)。此菜单中也提供了管理超链接。您可以在此处添加和移除此要素的动态超链接。此列表不包含基于字段的超链接,可用的命令对基于字段的超链接没有任何影响。
使用超链接
- 在工具工具条上,单击超链接工具 。随即鼠标指针将变为闪电形状。
- 在数据框中单击目标要素或目标位置可访问相关的超链接信息。
- 随即将弹出超链接信息,例如一个 HTML 网页。如果针对某个要素指定了多个超链接,则使用超链接工具单击该要素时,ArcMap 将弹出一个超链接列表。
- 如果同时有多个图层启用了超链接,则在数据框中单击某个位置后,将弹出超链接对话框,供您从其中一个图层选择要素。图层名称将在圆括号中列出。
更改要素的超链接颜色
您可以在 ArcMap 中设置超链接要素的显示颜色,操作步骤如下:
- 单击自定义 > ArcMap 选项。
- 单击常规选项卡。
- 选中选择超链接工具后,高亮显示包含可单击内容的要素。
- 单击颜色下拉菜单,为高亮显示的内容指定其他颜色。
管理超链接路径
您可以指定一个超链接基础地址(该地址可作为地图属性的一部分),作为指向文档或 URL 的基于字段的超链接的基础路径或 URL。例如,如果超链接基础地址设置为 D:\Data,则字段中被用作指向文档的超链接值就不必再包含 D:\Data。这些链接值可只包含文件的名称。使用此属性可以使超链接的管理更简单,因为如果目标的位置发生了变化,您只需编辑该项设置,而无需一一编辑字段中提供超链接目标的每个值。
超链接基础地址属性可在地图文档属性 对话框中指定。要打开该对话框,请单击文件 > 地图文档属性。这是地图文档的一个超链接基础地址属性。如果您指定将目标值发送给宏,则该设置不起作用。另外,该设置对动态超链接没有任何影响。
您可以覆盖此默认设置,以防自动添加斜线。您可以通过启动“高级 ArcMap 设置”工具(<安装盘>:\Program Files\ArcGIS\Desktop10.2.1\Utilities)并在其他选项卡中查找,来找到此设置。覆盖默认设置可使长路径和 URL 的处理变得更加容易。
例如,如果您想使用带有长 URL(如 http://www.example.com/index.cfm?parameter=1234)的超链接基础地址设置,您需要指定 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 传递到调度对象,以便为适当的要素启动超链接。
创建调度对象的超链接的脚本示例
通过调度对象从超链接脚本访问 ArcObjects
Function OpenLink ( {IFEATURE}, {IFEATURELAYER} )
Dim hlauncher
Set hlauncher = CreateObject("Hyperlink_Lib.Launcher")
hlauncher.Launch {IFEATURE}, {IFEATURELAYER}
End Function
该示例将从您创建的 Hyperlink_Lib 库调用函数启动。