我正在尝试使用 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 是 Buildings 层中的一个字段,其中包含类似“BLD000016.html”的字符串。我已经尝试在 Hyperlink Base 属性中使用“..\”约定,但没有成功。
好的,我刚刚将我的代码编辑为以下内容,但仍然无法正常工作。我在正确的轨道上吗?
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
更新:
显然,我之前没有正确实施“..\”约定,因为它现在正在工作。总结一下解决方案,我没有使用“超链接”部分的“显示”选项卡上的“脚本”选项。相反,我选择了“文档”选项;然后在“Hyperlink Base”参数中输入“....\Documents”。我已经使用位于两个不同驱动器号上的 GIS 根文件夹对其进行了测试,默认浏览器会打开与 MXD 项目所在的相同驱动器号对应的 html 文件。