1、获取图层字段

    Dim pTable As ITable = pLayer
Dim pField As IField
For i As Integer = To pTable.Fields.FieldCount - pField = pTable.Fields.Field(i) Next

 2、布局视图中的Element分离和合并

  Private Sub PartEleMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PartEleMenuItem.Click
Dim graphicsContainer As IGraphicsContainer = TryCast(PageLayoutPrint.ActiveView, IGraphicsContainer)
Dim pGraphContSel As IGraphicsContainerSelect = TryCast(graphicsContainer, IGraphicsContainerSelect) pGraphContSel.UnselectAllElements()
Dim pGroupEle As IGroupElement = Right_MenuStrip.Tag
If IsNothing(pGroupEle) Then Exit Sub
For i As Integer = To pGroupEle.ElementCount -
Dim pElement As IElement = pGroupEle.Element(i)
pGraphContSel.SelectElement(pElement)
graphicsContainer.AddElement(pElement, )
Next Right_MenuStrip.Tag = Nothing
PageLayoutPrint.ActiveView.Refresh()
End Sub
'合并Element
Private Sub MargerEleMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MargerEleMenuItem.Click
Dim graphicsContainer As IGraphicsContainer = TryCast(PageLayoutPrint.ActiveView, IGraphicsContainer)
Dim pGraphContSel As IGraphicsContainerSelect = TryCast(graphicsContainer, IGraphicsContainerSelect)
Dim pGroupEle As IGroupElement = New GroupElement()
For i As Integer = To pGraphContSel.ElementSelectionCount -
pGroupEle.AddElement(pGraphContSel.SelectedElement(i))
Next
pGraphContSel.UnselectAllElements()
Dim pElement As IElement = CType(pGroupEle, IElement)
graphicsContainer.AddElement(pElement, )
pGraphContSel.SelectElement(pElement)
PageLayoutPrint.ActiveView.Refresh()
End Sub

效果如下图:

合并前:

合并后:

3、批量修改字段值

VB

  ''' <summary>
''' 字段值更新,将Int型的字段值转换成date类型的字段值
''' </summary>
''' <param name="pFeatureLayer">需要转换的图层</param>
''' <returns></returns>
''' <remarks></remarks>
Private Function UpdateFieldValue(ByVal pFeatureLayer As IFeatureLayer)
Dim pFeatureClass As IFeatureClass = pFeatureLayer.FeatureClass
Dim pFeatureCursor As IFeatureCursor = pFeatureClass.Search(Nothing, False)
Dim pFeature As IFeature = pFeatureCursor.NextFeature()
While Not IsNothing(pFeature)
Dim timevalue As String = pFeature.Value().ToString() & "/01/01" '这里的字段索引固定
Dim time As DateTime = CType(timevalue, DateTime)
pFeature.Value() = time '这里的字段索引固定
pFeature.Store()
pFeature = pFeatureCursor.NextFeature()
End While
System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor)
End Function

 C#

 /// <summary>
/// 字段值更新根据字段名
/// </summary>
/// <param name="pFeatureLayer">要素图层</param>
/// <param name="fieldName">字段名</param>
private void UpdateFieldValue(IFeatureLayer pFeatureLayer,string fieldName)
{
IFeatureClass pFeatureClass =pFeatureLayer.FeatureClass;
IFeatureCursor pFeatureCursor = pFeatureClass.Search(null, false);
IFeature pFeature = pFeatureCursor.NextFeature();
while(pFeature!=null)
{
pFeature.set_Value(pFeatureClass.FindField(fieldName), );
pFeature.Store();
pFeature = pFeatureCursor.NextFeature();
}
System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);
}

4、ImageComboBoxEdit 加载字段

Friend WithEvents cboLayerList As DevExpress.XtraEditors.ImageComboBoxEdit
  Private Sub AddLayer()
cboLayerList.Properties.Items.Clear()
For i As Integer = To m_AssetApplication.MainMapCon.LayerCount -
Dim icbi As ImageComboBoxItem = New ImageComboBoxItem
Dim pLayer As ILayer = m_AssetApplication.MainMapCon.get_Layer(i)
icbi.Description = pLayer.Name
icbi.Value = pLayer
cboLayerList.Properties.Items.Add(icbi)
Next
cboLayerList.EditValue = m_AssetApplication.MainMapCon.get_Layer()
End Sub

5、图层查询 IFeatureSelection

  Protected Overridable Function QueryByType(ByVal querystring As String) As Boolean
Dim pQueryFilter As IQueryFilter = New QueryFilter
pQueryFilter.WhereClause = querystring
Dim pFeatureLayer As IFeatureLayer = tmpLayer
Dim pSelection As IFeatureSelection = pFeatureLayer
If CheckSearchFromSelection.Checked Then '从选择集中查询数据
pSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultAnd, False)
Else ‘从图层中查询数据
m_AssetApplication.MainMapCon.Map.ClearSelection() '清空选择集
pSelection.SelectFeatures(pQueryFilter, esriSelectionResultEnum.esriSelectionResultNew, False)
End If
If pSelection.SelectionSet.Count = Then
MessageBox.Show("查询结果为空!")
Return True
End If
Return False
End Function

 6、查询删除数据

 Dim pQueryFilter As IQueryFilter = New QueryFilter()
pQueryFilter.WhereClause = PointId & " in (" & ids & ")" 'ids='1','2'
Dim pTable As ITable = pPointFeaCs
 pTable.DeleteSearchedRows(pQueryFilter)

7、添加REST服务地址

Dim pRestLayer As IMapServerRESTLayer = New MapServerRESTLayer
pRestLayer.Connect("http://172.0.0.1:7080/PBS/rest/services/MyPBSService1/MapServer")
pMap.AddLayer(pRestLayer)

ArcEngine语法笔记(VB)的更多相关文章

  1. SQL基础语法笔记教程整理

    PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...

  2. C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

    原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...

  3. SQL 基础语法笔记教程整理

    最近从图书馆借了本介绍 SQL 的书,打算复习一下基本语法,记录一下笔记,整理一下思路,以备日后复习之用. PS:本文适用 SQL Server2008 语法. 首先,附一个发现的 MySQL 读书笔 ...

  4. [python] Pythonic语法笔记

    Pythonic语法笔记 __new__ 在类实例化之前执行的,也就是在init之前执行,可以为这个类写操作.接受的参数不是self而是cls.只有在new方法里返回类才会执行init操作,需要返回父 ...

  5. SQL Server 常用高级语法笔记

    自从用了EF后很少写sql和存储过程了,今天需要写个比较复杂的报告,翻出了之前的笔记做参考,感觉这个笔记还是很有用的,因此发出来和园友分享. 1.case...end (具体的值)case后面有值,相 ...

  6. C#语言不常用语法笔记

    只看过3天C#语法书,了解个大概,与C++等不同之处,或者看开源遇到一些奇异用法,记录一下,脑子不够用的情况下,还是记笔记靠谱. ==================== 顺便吐槽下,这年头得会各种编 ...

  7. solr使用语法笔记

    http://127.0.0.1:8095/shangbiao_sale/select?sort=id+desc&fq=&wt=json&json.nl=map&q=s ...

  8. Java语法笔记

    目录 知识点 不支持 恶心事 与C#的区别 组件 学习资料 母版页 知识点 类 静态方法,即可以在类上被调用,也可以在实例对象上被调用. Java类 先执行静态构造函数,再执行静态方法或静态字段,所以 ...

  9. Java基本语法笔记

    1. 基本格式: public class HelloWprdApp { public static void main(String[] args) {        // TODO Auto-ge ...

随机推荐

  1. POJ 2406 Power Strings next数组循环节应用、

    题意:就给出个字符串做*的定义.a^0 = "" (the empty string) and a^(n+1) = a*(a^n).    题目要求n的最大值. 思路: 化简上面的 ...

  2. 洛谷P3150 pb的游戏(1)题解 博弈论入门

    题目链接:https://www.luogu.org/problem/P3150 这道题目是博弈论的入门题. 我们以 必胜态 和 必败态 来讲解这个问题. 首先,下面的图片演示了前8个数的必胜态和必败 ...

  3. java一维数组的声明与初始化

    一维数组:可以理解为一列多行.类型相同的数据,其中每个数据被称为数组元素: 一维数组的声明方式: type varName[]; 或 type[] varName;(推荐) Eg:int age[]; ...

  4. 初次使用pycharm 的interpreter option为空解决办法。

    第一步:进入Setting. 第二步:进入Project中的Project Interpreter.选择添加即可.

  5. Vue的事件修饰符

    转载于:https://www.cnblogs.com/xuqp/p/9406971.html 事件处理 如果需要在内联语句处理器中访问原生DOM事件.可以使用特殊变量$event,把它传入到meth ...

  6. js执行代码顺序

    之前一直停留在主线程先执行,异步后执行的浅理解中,后来随着不断的学习,才渐渐意识到这里面还是有点复杂的,不过我不打算写很多.一幅图来说明这个复杂的关系 processTick可理解为node中的延时器 ...

  7. Moq基础 判断方法被执行

    如果想知道注入的类的某个方法被使用了几次,就可以通过 mock 提供的方法进行判断方法有没被执行或被使用多少次 本文是一个系列,具体请看 Moq基础(一) 为什么需要单元测试框架 Moq基础(二) 快 ...

  8. CCPC 2018 吉林 C "JUSTICE" (数学)

    传送门 参考资料: [1]:https://blog.csdn.net/mmk27_word/article/details/89789770 题目描述 Put simply, the Justice ...

  9. linux 运行处理者

    如同前面建议的, 当内核收到一个中断, 所有的注册的处理者被调用. 一个共享的处理者 必须能够在它需要的处理的中断和其他设备产生的中断之间区分. 使用 shared=1 选项来加载 short 安装了 ...

  10. Less 语法快速入门

    Less 语法快速入门 Less 是一门 CSS 预处理语言其可以运行在 Node 或浏览器端. 它将传统的 css 样式结构单一的排版顺序进行了优化,让我们可以通过层级嵌套的方式将 css 类名与H ...