# -*- coding: cp936 -*-
# 动态加载工具箱
# billschen@163.com
# billschen.com
# ----------------------------------------------------------
# 当我们将写好的Python脚本放做成工具箱,
# 供级我们的同事使用的时候,可能会有些麻烦.
# 因为我们写的脚本通常需要加载ArcGis的一些工具箱.
# 但是,每台机的arcGis安装路径可能会不相同.因此
# 如果使用以下的表达式
# gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
# 则可以造成工具箱无法正常加载,因为如果别人机子上的arcGis不是安装于这个路径之下的话,
# 那么,怎样才能解决这个问题呢?.总不至于要对方重装ArcGis软件吧?
# 笔者经过研究,发现一个方法,仅供参考.
# arcgisscripting 模块有一个属性:__file__
# 该属性返回的是 arcgisscripting.dll 这个DLL文件所有的位置.
# 如:C:\Program Files\ArcGIS\bin\arcgisscripting.dll
# 显然,可以利用这个属性检查出计算机安装arcGis所在的路径.
# 然后动态地加载工具箱, 代码如下所示
# ----------------------------------------------------------
import os, sys, string
import arcgisscripting
gp = arcgisscripting.create()
# 定义需要加载工具箱的路径名称
toolNameList =[
r'ArcToolbox\Toolboxes\Data Management Tools.tbx',
r'ArcToolbox\Toolboxes\Analysis Tools.tbx']
arcGisScriptPath = None
arcGisToolPath = None
try:
# 获得 arcgisscripting.dll 所在的路径,目的是为了取得ArcGis的安装路径
arcGisScriptPath = arcgisscripting.__file__
for toolName in toolNameList:
arcGisToolPath = \
arcGisScriptPath.replace( \
r'bin\arcgisscripting.dll', toolName)
gp.AddToolbox(arcGisToolPath)
except:
gp.AddMessage('无法加载工具箱'+arcGisToolPath+',请检查的你的ArcGis安装是否完整')
del gp
sys.exit()
# 开始正式的处理工作
# 动态加载工具箱
# billschen@163.com
# billschen.com
# ----------------------------------------------------------
# 当我们将写好的Python脚本放做成工具箱,
# 供级我们的同事使用的时候,可能会有些麻烦.
# 因为我们写的脚本通常需要加载ArcGis的一些工具箱.
# 但是,每台机的arcGis安装路径可能会不相同.因此
# 如果使用以下的表达式
# gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx")
# 则可以造成工具箱无法正常加载,因为如果别人机子上的arcGis不是安装于这个路径之下的话,
# 那么,怎样才能解决这个问题呢?.总不至于要对方重装ArcGis软件吧?
# 笔者经过研究,发现一个方法,仅供参考.
# arcgisscripting 模块有一个属性:__file__
# 该属性返回的是 arcgisscripting.dll 这个DLL文件所有的位置.
# 如:C:\Program Files\ArcGIS\bin\arcgisscripting.dll
# 显然,可以利用这个属性检查出计算机安装arcGis所在的路径.
# 然后动态地加载工具箱, 代码如下所示
# ----------------------------------------------------------
import os, sys, string
import arcgisscripting
gp = arcgisscripting.create()
# 定义需要加载工具箱的路径名称
toolNameList =[
r'ArcToolbox\Toolboxes\Data Management Tools.tbx',
r'ArcToolbox\Toolboxes\Analysis Tools.tbx']
arcGisScriptPath = None
arcGisToolPath = None
try:
# 获得 arcgisscripting.dll 所在的路径,目的是为了取得ArcGis的安装路径
arcGisScriptPath = arcgisscripting.__file__
for toolName in toolNameList:
arcGisToolPath = \
arcGisScriptPath.replace( \
r'bin\arcgisscripting.dll', toolName)
gp.AddToolbox(arcGisToolPath)
except:
gp.AddMessage('无法加载工具箱'+arcGisToolPath+',请检查的你的ArcGis安装是否完整')
del gp
sys.exit()
# 开始正式的处理工作