使用超链接
超链接可用于访问与要素关联的文档或网页。您可使用基础工具 工具条上的超链接工具 访问各要素的超链接。本主题将介绍如何设置和使用地图图层的超链接属性。
使用超链接工具之前,您需要先进行定义,超链接可定义为以下三种类型中的任一种:
- 文档 - 使用超链接工具单击要素时,将在合适的应用程序(例如 Microsoft Excel)中打开关联的文档或文件。
- URL - 使用超链接工具单击要素时,将在 Web 浏览器中启动关联的网页。
- 脚本 - 使用超链接工具单击要素时,要素值将发送到脚本。此选项可启用对自定义行为的使用。
可以通过使用基于字段的超链接或使用识别工具定义动态超链接来为图层中的各要素定义超链接。
另一种更为灵活的工具是 HTML 弹出窗口。单击要素即可通过 HTML 和 Web 的方式报告附加的要素信息和属性。
定义基于字段的超链接属性
- 右键单击要设置超链接属性的图层,然后选择属性。
- 选择图层属性 对话框上的显示选项卡。
- 选中使用字段支持超链接。注:
在可以在该对话框中指定超链接之前应设置好超链接字段。例如,如果希望每次使用超链接工具单击要素时均启动特定网页,首先要将文本字段添加到此图层的属性表中,以使表中包含与每个要素相关联的 URL。然后在该对话框中,选中超链接选项,从字段下拉列表中选择字段,然后选择 URL 单选按钮选项。
您所选择的用于提供超链接的字段值可以包含目标文档的完整路径或目标网页的完整 URL。或者,该值可以仅包含目标文档或网页的名称,您可以使用超链接基础地址属性指定用以找到此目标的路径或 URL。
您可以忽略 URL 的 http:// 部分。如果想使用 http 以外的其他协议,则必须在 URL 的开始部分包含该协议。
- 选择希望超链接使用的字段名以及链接类型 - 文档、URL 或脚本。如果选择使用脚本,则可以单击编辑按钮以使用 JScript 或 VBScript 来编写脚本。单击确定。注:
此对话框可用于构建一个启动超链接的脚本。应使用在解析程序下拉列表中选择的脚本语言规则对脚本进行编码。脚本可以包含由所选脚本语言支持的任何有效语句。
字段用方括号 [ ] 括起来,无需考虑图层数据源的数据类型。此超链接脚本被编写为一个函数,函数中可以包含编程逻辑和多个代码行。
默认函数将使用 ShellExecute 函数。ShellExecute 函数属于 MSDN 库的一部分。
这些链接指向由 Microsoft 公司和 Python 软件基金会创建、所有和维护的网页。我们无法保证这些网页的可用性,也无需对网页中的内容负责。 - 单击图层属性 对话框中的确定或应用按钮。
通过识别结果定义动态超链接
您可以使用识别工具向要素动态添加超链接。如果选择了动态超链接,您将无法通过属性字段提供超链接目标信息。指定的超链接目标与被识别的要素相关联。关联信息存储在图层中。如果将图层存储到文件中,这些关联信息也将存储在图层中。
- 单击基础工具 工具条上的识别工具。
- 单击要定义超链接的要素。
- 在识别 窗口中右键单击该要素,然后单击添加超链接。
- 指定期望的超链接目标。
超链接基础地址设置对动态超链接没有任何影响。
您可以为任何要素指定任意数量的动态超链接。为要素指定的所有动态超链接都列于识别结果快捷菜单的超链接右拉列表中(上述步骤 1–3)。此菜单中也提供了管理超链接。您可以在此处添加和移除此要素的动态超链接。此列表不包含基于字段的超链接,可用的命令对基于字段的超链接没有任何影响。
从 shapefile 中删除一些要素之后,您可能会发现动态超链接被附加到其他要素上。发生这种情况的原因是 ArcMap 使用要素 ID (FID) 字段建立动态超链接与要素间的关联,但是当一些要素被删除后,shapefile 的 FID 字段会重新计算。为确保超链接始终与正确的要素关联,请仅对地理数据库要素类使用动态超链接(地理数据库要素的 ID 值始终唯一)。不过,基于字段的超链接可应用于 shapefile,而不受此限制。
使用超链接
- 在基础工具 工具条上,单击超链接工具。随即鼠标指针将变为闪电形状。注:
地图中已定义超链接的所有可见要素均将以蓝色(默认颜色)绘制,如果要素为面,则其轮廓将绘制为蓝色。当指针悬停在带有超链接的要素上方时,鼠标指针将闪烁一次变成黑色闪电形状,之后便会显示一个包含超链接目标名称的弹出提示。
- 在数据框中单击目标要素或目标位置可访问相关的超链接信息。
- 接下来会弹出超链接信息,例如一个 HTML 网页。如果为某个要素指定了多个超链接,当使用超链接工具单击此要素时,ArcMap 将弹出一个超链接列表。
- 如果为多个图层打开超链接,单击数据框中的位置会弹出超链接 对话框,可从其中一个图层中选择一个要素。图层名称将在圆括号中列出。
更改要素的超链接颜色
您可以在 ArcMap 中设置超链接要素的显示颜色,操作步骤如下:
- 单击自定义 > ArcMap 选项。
- 单击常规选项卡。
- 选中选择超链接工具后,高亮显示包含可单击内容的要素。
- 单击颜色下拉菜单,为高亮显示的内容指定其他颜色。
管理超链接路径
您可以指定一个超链接基础地址(该地址可作为地图属性的一部分),作为指向文档或 URL 的基于字段的超链接的基础路径或 URL。例如,如果超链接基础地址设置为 D:\Data,则字段中被用作指向文档的超链接值中就不必再包含 D:\Data。这些链接值可只包含文件的名称。使用此属性可以使超链接的管理更简单,因为如果目标的位置发生了变化,您只需编辑该项设置,而无需一一编辑字段中提供超链接目标的每个值。
超链接基础地址属性可在地图文档属性 对话框中指定。要打开该对话框,请单击文件 > 地图文档属性。这是地图文档的一个超链接基础地址属性。如果您指定将目标值发送给宏,则该设置不起作用。另外,该设置对动态超链接没有任何影响。
您可以覆盖此默认设置,以防自动添加斜线。您可以通过启动 Advanced ArcMap Settings 工具(<安装盘>:\Program Files\ArcGIS\Desktop10.1\Utilities)并在 Miscellaneous 选项卡中进行查看,来查找此设置。覆盖默认设置可使长路径和 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 无法像读取命令行一样读取这些参数。而是使用一种特殊分隔符 a ?(问号)将文件路径与参数分离。在 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 库调用函数启动。