中国地图
GIS探索者
地图网
GIS论坛
网站首页| GIS论坛 |新闻动态 | 技术专栏 | GIS书籍 | 资源下载 | 求职招聘 | 研究生考试 | GIS博客 | GIS空间站
欢迎光临GIS空间站!   网站地图
  专栏导航:| ArcGIS | MapInfo | TopMap | 地理信息 | 遥感 | GPS | 测绘 | WebGIS | LBS | 前沿 | 数据库 | 开发 | 行业应用
  推荐栏目:| AO开发 | 业界动态 | GIS资源 | 招聘信息 | 求职简历 | 共享软件 | 电子书籍 | 研究生考题 | 电子期刊 | GIS论文
您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> AO开发 >> 文章正文

AO开发中的一些小技巧

作者:yunaotin…    文章来源:GIS空间站    点击数:    更新时间:2006-7-1
 

开发中的一些小技巧:
1.
/////////
根据feature 的oid 取得对应的feature
Set pfeature = pFeatureClass.GetFeature(CStr(sOid))
////////

Set pfeature = pFeatureClass.GetFeature(lOid)
当不存在featureOID 为 lOid 时,会出错,改为通过函数处理,为了减少时间,也不采用featureclass.search等方法。
这样成功就取得对应的feature,不然就返回nothing,虽然函数中会产生错误,但不会影响正常操作。
Private Function get_FeatureByOid(pFcls As IFeatureClass, lOid As Long) As IFeature
On Error GoTo EH
Set get_FeatureByOid = Nothing
Dim pfeature As IFeature
If pFcls Is Nothing Then Exit Function
If lOid < 0 Then Exit Function

If pFcls.HasOID Then
Set pfeature = pFcls.GetFeature(lOid)
Set get_FeatureByOid = pfeature
End If
EH:
'
End Function

2.取得指定字段名的值
/////////
NameString = pfeature.Value(pFeatureClass.FindField("XXXXXX"))
/////////
同样道理,当找不到字段名为 XXXXXX 的字段时,pfeatureclass.findfield("XXXXXX") 返回值为-1
那么 pfeature.value(-1)当然会出错
同样通过函数替换
Public Function Get_FClsFldIdx(ByVal pFeatureCls As IFeatureClass, ByVal sFldName As String) As Long
'if success then return a value bigger than -1,if not found,then return -1
On Error GoTo EH
Get_FClsFldIdx = pFeatureCls.FindField(sFldName)

Exit Function
EH:
'
End Function
使用时:
...
lFldIdx = m_MyLib.Get_FClsFldIdx(pFeatureClass, "XXXXXX")
If lFldIdx = -1 Then Exit Function '不存在名称为"XXXXXX"的字段
...
Dim pfeature As IFeature
Dim NameString As String

For i = 0 To pFeatureClass.FeatureCount(Nothing) - 1
Set pfeature = get_FeatureByOid(pFeatureClass, CLng(i))
If Not pfeature Is Nothing Then
NameString = pfeature.Value(lFldIdx)
....
End If
Next i
...

以上两例是比较简单的例子,在ao在线帮助中也经常有一些会产生错误的隐患,AO只是示例用法,但用法是否合理,要在自已的开发实践中总结。
这样,使用AO中提供的代码,有的人能调试通过,运行得很正常,则其他人有可能调试不通过。
希望能对初学者有帮助

文章录入:gissky    责任编辑:gissky  发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
■■相 关 图 书:
■■相 关 文 章:
  • Windows Vista下安装 ArcGis 9.2 的解决方法

  • 通过SDE读取矢量和栅格数据

  • 加载文件夹下所有的矢量图形到mapcontrol中去

  • 在编程过程中使用ArcMap注意事项

  • ArcGIS开发宝典

  • vista下安装ArcGis9.2的解决办法

  • 《ArcGIS二次开发编程实例》

  • 上一篇文章:

  • 下一篇文章:
  •  
    GIS博客精华
    热点文章
    热门资源
     
    关于我们 | 联系我们 | 广告服务 | 友情链接 | 申请链接 | 合作联盟 | 诚聘英才
      GIS空间站(GISSky.Net)版权所有 站长:兔八哥