ArcEngine语法笔记(VB)
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)的更多相关文章
- SQL基础语法笔记教程整理
PS:本文适用SQL Server2008语法. 一.关系型数据库和SQL 实际上准确的讲,SQL是一门语言,而不是一个数据库. 什么是SQL呢?简而言之,SQL就是维护和使用关系型数据库中的的数据的 ...
- C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com
原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...
- SQL 基础语法笔记教程整理
最近从图书馆借了本介绍 SQL 的书,打算复习一下基本语法,记录一下笔记,整理一下思路,以备日后复习之用. PS:本文适用 SQL Server2008 语法. 首先,附一个发现的 MySQL 读书笔 ...
- [python] Pythonic语法笔记
Pythonic语法笔记 __new__ 在类实例化之前执行的,也就是在init之前执行,可以为这个类写操作.接受的参数不是self而是cls.只有在new方法里返回类才会执行init操作,需要返回父 ...
- SQL Server 常用高级语法笔记
自从用了EF后很少写sql和存储过程了,今天需要写个比较复杂的报告,翻出了之前的笔记做参考,感觉这个笔记还是很有用的,因此发出来和园友分享. 1.case...end (具体的值)case后面有值,相 ...
- C#语言不常用语法笔记
只看过3天C#语法书,了解个大概,与C++等不同之处,或者看开源遇到一些奇异用法,记录一下,脑子不够用的情况下,还是记笔记靠谱. ==================== 顺便吐槽下,这年头得会各种编 ...
- solr使用语法笔记
http://127.0.0.1:8095/shangbiao_sale/select?sort=id+desc&fq=&wt=json&json.nl=map&q=s ...
- Java语法笔记
目录 知识点 不支持 恶心事 与C#的区别 组件 学习资料 母版页 知识点 类 静态方法,即可以在类上被调用,也可以在实例对象上被调用. Java类 先执行静态构造函数,再执行静态方法或静态字段,所以 ...
- Java基本语法笔记
1. 基本格式: public class HelloWprdApp { public static void main(String[] args) { // TODO Auto-ge ...
随机推荐
- svg和canvas比较以及svg简单介绍
文章地址:https://www.cnblogs.com/sandraryan/ 什么是svg 可缩放矢量图形(Scalable Vector Graphics) 1. 一种使用XML描述的2D图形语 ...
- Nginx 日志记录post数据,并使用goaccess进行日志分析
nginx日志默认不会记录post数据 在nginx配置文件的http节 log_format 日志格式标识 [escape=json] 日志格式 比如:日志格式标识设置为main,添加escape= ...
- CRF(条件随机场)与Viterbi(维特比)算法原理详解
摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...
- Mockito 使用
1. 算术测试类 package com.smart.test.mockito; public interface Calculator { public int add(int a, int b); ...
- 51nod 1287加农炮
1287 加农炮 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 一个长度为M的正整数数组A,表示从左向右的地形高度.测试一种加农炮 ...
- jQuery 工具类函数-检测对象是否为原始对象
调用名为$.isPlainObject的工具函数,能检测对象是否为通过{}或new Object()关键字创建的原始对象,如果是,返回true,否则,返回false值,调用格式为: $.isPlain ...
- vue面试的一些总结
vue中组件的data为什么是一个函数? 组件是可复用的vue实例,一个组件被创建好之后,就可能被用在各个地方,而组件不管被复用了多少次,组件中的data数据都应该是相互隔离,互不影响的,基于这一理念 ...
- CF1208
CF1208 打的话貌似能够涨分的样子? A 水题 B 枚举左端点,看看右端点的最近位置 开一个类似于桶的东西维护一下上一次出现位置 左端点左边就删掉,否则就要将上一次出现的位置删掉 时间复杂度\(O ...
- vue-learning:14 - js - new Vue(options)中option
new Vue(options)中option 2019-4-14 Vue的核心是数据驱动,在template中实现视图逻辑,在javascript中实现业务逻辑.要通过模板template将数据显示 ...
- 【19.05%】【codeforces 680D】Bear and Tower of Cubes
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...