#
-*- 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()
# 开始正式的处理工作