使用python制作ArcGIS插件(5)其他技巧
来源:互联网 发布:如何找到电子称软件 编辑:程序博客网 时间:2024/04/20 23:17
by 李远祥
使用python做插件开发,除了了解ArcToolBox工具之外,还需要在了解ArcPy的相关函数和接口。只有掌握了这些,才可以顺利的开发ArcGIS插件。
但是,很多程序开发者真的不喜欢python的写法,尤其不习惯,既希望能够使用ArcPy的简洁用法,又希望在其他逻辑操作中使用自己熟悉的语言。其实python的优势之处在于其粘合度非常好,可以充分利用一些其他语言的功能。
假如程序员非常熟悉VB这个古老的语言,之前已经有一些逻辑实现在VB上完成了,希望能够很好的迁移到python中来,如果什么都得重新实现,那实在令人失望。下面介绍一种比较有效的方式去调用VB或者VBScript。
ArcGIS Desktop在相当的一段时间内允许使用VBScript去扩展其功能,并且在很多的工具里面都允许使用VBScript。以前有相当的这些成果,都可以使用python去调用这些既有的成果。
看以下一个excel表格的内容,这是一个机场点的数据,一般情况下会使用十进制度来描述经纬度,当然也有例外的时候,例如下图这样
用字母表达东经北纬等,维度的前两位是整度,后面是小数位;经度的规律也是类似的。如果要将这个表格进行落地,将其坐标转为点数据,那么需要对这些非十进制度进行转换。常规的流程是使用excel转表工具先转为arcgis的table,然后对table新增两个double字段,用作重新计算X和Y,之后用xy data工具转为点数据。
这个流程问题不大,但主要是经纬度的转换,在Python下面做远没有在VB脚本下做那么简单。如果我们希望用最简单的方式去实现的话,只是这个转换工作使用VBScript,其他部分还是使用Python,那这样就最优的方案。ArcGIS是允许这样执行的。我们来看以下代码
#写入经度 airPort_X_codeblock="""dim result result = Mid( [经度],2,3 ) if Left( result ,1 )=0 then result= Mid(result,2,2 ) end if result =result+"."+ Mid( [经度],5,2 ) result = result+Right( [经度],1 ) if Left( [经度],1 )="W" then result="-"+result end if""" arcpy.CalculateField_management(AB.airPortTableURL,"X","result","VB",airPort_X_codeblock) #写入纬度 airPort_Y_codeblock="""dim result result = Mid( [纬度],2,2 ) if Left( result ,1 )=0 then result= Mid(result,2,2 ) end if result =result+"."+ Mid( [纬度],4,2 ) result = result+Right( [纬度],1 ) if Left( [经度],1 )="S" then result="-"+result end if""" arcpy.CalculateField_management(AB.airPortTableURL,"Y","result","VB",airPort_Y_codeblock) #创建XY图层,还没加入坐标系统选择功能 #spRef = r"Coordinate Systems\Geographic Coordinate Systems\world\WGS 1984.prj" arcpy.MakeXYEventLayer_management(AB.airPortTableURL,"X","Y",AB.airPortTable,mapLayerInfo.XYRef)
上述代码就是将VBScript代码混在ArcPy中进行调用,可以看到使用的是字段计算器,其中有一项是选择脚本语言,那么可以选择VB项进行调用。
ArcGIS有很多工具都支持混合脚本调用。这些都是非常重要的技巧,可以尽量使用自己熟悉的工具或者使用已有的成果来实现功能。
- 使用python制作ArcGIS插件(5)其他技巧
- 使用python制作ArcGIS插件(1)工具介绍
- 使用python制作ArcGIS插件(2)代码编写
- 使用python制作ArcGIS插件(3)ArcPy的使用说明
- 使用python制作ArcGIS插件(4)界面交互
- 使用python制作ArcGIS插件(6)案例分析
- 使用Python制作qgis插件总结
- ArcGIS教程:ArcGIS标注使用技巧
- ArcGIS Python脚本使用
- 【Web制图】如何使用ArcGIS Online制作游记(一)
- 【Web制图】如何使用ArcGIS Online制作游记(二)
- 使用Arcgis Javascript api 访问其他地图
- ArcGIS Desktop Python add-ins 插件类型
- 学习arcgis的脚本Python入门技巧
- 使用 ArcGIS Engine Runtime 制作安装包
- ArcGIS使用字体文件制作符号库
- ArcGIS使用字体文件制作符号库!
- 使用Truetype字体制作ArcGIS符号
- 使用python制作ArcGIS插件(1)工具介绍
- 使用python制作ArcGIS插件(2)代码编写
- 使用python制作ArcGIS插件(3)ArcPy的使用说明
- 荷兰国旗算法及其拓展
- 使用python制作ArcGIS插件(4)界面交互
- 使用python制作ArcGIS插件(5)其他技巧
- 使用python制作ArcGIS插件(6)案例分析
- Windows平台 端口命令
- 包括命令有两种形式
- Android-UI之ScrollView
- android_Activity的四种启动模式和onNewIntent()
- 进入DFU模式恢复教程 iOS9强制降级iOS8教程
- Docker 基础技术:Linux Namespace(下)
- JAVA从菜鸟【入门】到新手【实习】一一Python基础学习完成【2016.09.27——2016.10.10】