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. node_modules

    怎么使外部访问module,我们知道客户端的JavaScript使用script标签引入JavaScript文件,就可以访问其内容了,但这样会带来问题,最大的就是作用域相同,产生冲突问题,以至于前端大 ...

  2. [转]java常用正则表达式

    只能输入数字:"^[0-9]*$".  只能输入n位的数字:"^\d{n}$".  只能输入至少n位的数字:"^\d{n,}$".  只能输 ...

  3. Python--day38--多进程的方法属性总结

    多进程的方法属性:

  4. H3C RIPv2的改进

  5. P1020 从大到小排序

    题目描述 给你n个整数,请你按照从大到小的顺序输出它们. 输入格式 输入的第一行包含一个整数 \(n(1 \le n \le 10^3)\) ,用于表示元素的个数. 输入的第二行包含 \(n\) 个整 ...

  6. 多校 HDU - 6614 AND Minimum Spanning Tree (二进制)

    传送门 AND Minimum Spanning Tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 ...

  7. HDU6579 2019HDU多校训练赛第一场1002 (线性基)

    HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...

  8. goasp-onvif实现nvr server问题点滴

    参考了:https://blog.csdn.net/saloon_yuan/article/details/24901597,本文以原贴为基础做了一些修改,非常感谢原作者.   1:开发框架搭建    ...

  9. Java 学习笔记(4)——面向对象

    现在一般的语言都支持面向对象,而java更是将其做到很过分的地步,java是强制使用面向对象的写法,简单的写一个Hello Word都必须使用面向对象,这也是当初我很反感它的一点,当然现在也是很不喜欢 ...

  10. ERROR StatusLogger Log4j2 could not find a logging implementation.

    今天在学习structs2  2.5.5的版本的时候碰到2个问题.第一个网上下的包里面差log4j-core这个包. 虽然程序可以运行,但控制台会报这个错误. ERROR StatusLogger L ...