『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

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

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

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 2003519 兔八哥

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()

      京ICP备2025132830号-1 京公网安备 号