http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> ArcGIS入门与应用 >> 正文

用来获取图层中指定字段上的属性的Unique Value

作者:兔八哥    文章来源:GIS空间站    点击数:    更新时间:2006-7-1
摘要:在ArcMap中,进行属性查询的时候,Arcmap中提供了选中字段的属性的Unique Value。这样就可以从列表中选择了。以前也遇到类似问题,一直不知道怎么做,好在当时使用的ArcSDE Oracle数据,使用了一个SQL语句解决了。不过要是Coverage就没有办法了。其实AO中提供了这样的功能了,可通过IDataStatistics来实现,下面是今天中午的成果,做了一个函数,参数为图层和字段,返回该图层该字段的所有Unique Value '下面程序段是用来列出ArcMap中,指定图层和字段中,所有Unique Value
在ArcMap中,进行属性查询的时候,Arcmap中提供了选中字段的属性的Unique Value。这样就可以从列表中选择了。以前也遇到类似问题,一直不知道怎么做,好在当时使用的ArcSDE Oracle数据,使用了一个SQL语句解决了。不过要是Coverage就没有办法了。其实AO中提供了这样的功能了,可通过IDataStatistics来实现,下面是今天中午的成果,做了一个函数,参数为图层和字段,返回该图层该字段的所有Unique Value
'下面程序段是用来列出ArcMap中,指定图层和字段中,所有Unique Value 2003年5月19日 兔八哥
Public Function listUniqueValue(pLayer As IFeatureLayer, pFieldName As String) As String()

 Dim pCursor As Icursor
 Set pCursor = pLayer.Search(Nothing, False)

 Dim pDataStat As IDataStatistics
 Dim pValue As Variant

 Set pDataStat = New DataStatistics
 pDataStat.Field = pFieldName
 Set pDataStat.Cursor = pCursor

 Dim pEnumVar As IEnumVariantSimple
 Set pEnumVar = pDataStat.UniqueValues

 pValue = pEnumVar.Next

 Dim I As Long
 'Dim count As Long
 'count = pDataStat.UniqueValueCount

 I = 0
 Dim value(200) As String '数组的长度按说应该使用pDataStat.UniqueValueCount来控制,但是编译只能使用
              '常数,不能使用变量
 Do Until IsEmpty(pValue)
  value(I) = pValue
  I = I + 1
  pValue = pEnumVar.Next
 Loop
 listUniqueValue = value()

End Function

(说明:该函数兔八哥只在ArcMap VBA中运行过,没有问题,VB+AO没有尝试过)

Tags:ArcGIS,AO  
责任编辑:gissky
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图