手机版

ARCGIS属性表中增加需要的字段,并自动赋值

发布时间:2024-11-04   来源:未知    
字号:

arcgis

在ARCGIS属性表中,一般不会包含实体几何信息,可以采取VBA进行计算。下面是几个简单的代码

特点:

1推荐给不会使用AO的朋友

2可以保存为CAL文件以备下次方便使用

使用方法

1打开属性表,选择计算的字段,右点选择Calculate Values;

2.选择“是”,进入Field Calculator;

2选择Advance选项;

3 在Pre-Logic VBA Script Code编辑框中输入VBA代码;

4在下面编辑框中输入赋值部分.

1--点坐标X

VBA部分:

Dim pGeo As IGeometry

Set pGeo = [Shape]

Dim pPoint As IPoint

Set pPoint = pGeo

赋值部分:

pPoint.X

2--点坐标Y

VBA部分:

同上

赋值部分:

pPoint.Y

坐标值为文件存储的固有值,和是否使用On the Fly坐标表示无关。返回当前显示的坐标值参看8,9

3--多边形周长

VBA部分:

Dim pGeo As IGeometry

Set pGeo = [Shape]

Dim pPolygon As IPolygon

Set pPolygon = pGeo

赋值部分:

pPolygon.Length

4--多边形面积

VBA部分:

Dim pGeo As IGeometry

arcgis

Set pGeo = [Shape]

Dim pPolygon As IPolygon

Set pPolygon = pGeo

Dim pArea As IArea

Set pArea = pPolygon

赋值部分:

pArea.Area

5--多边形重心X

VBA部分:

Dim pGeo As IGeometry

Set pGeo = [Shape]

Dim pPolygon As IPolygon

Set pPolygon = pGeo

Dim pArea As IArea

Set pArea = pPolygon

Dim pPoint As IPoint

Set pPoint = pArea.Centroid

赋值部分:

pPoint.X

6--多边形重心Y

VBA部分:

同上

赋值部分:

pPoint.Y

7--Polyline长度

VBA部分:

Dim pGeo As IGeometry

Set pGeo = [Shape]

Dim pPolyline As IPolyline

Set pPolyline = pGeo

Dim pCurve As IPolycurve

Set pCurve = pPolyline

赋值部分:

pCurve.Length

8--表示点坐标X

VBA部分:

Dim pDoc As IMxDocument

Set pDoc = ThisDocument

Dim pSpRef As ISpatialReference

Set pSpRef = pDoc.FocusMap.SpatialReference

arcgis

Dim pClone As IClone

Set pClone = [Shape]

Dim pGeo As IGeometry

Set pGeo = pClone.Clone

Dim pPoint as IPoint

Set pPoint = pGeo

pGeo.Project pSpRef

赋值部分:

pPoint.X

9--表示点坐标Y

VBA部分:

同上

赋值部分:

pPoint.Y

坐标值为On the Fly显示的坐标,不是文件存储的固有坐标

10--连续编号

VBA部分:

Static lCount as long

lCount=lCount+1

赋值部分:

lCount (从1开始)

lCount-1 (从0开始)

ARCGIS属性表中增加需要的字段,并自动赋值.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)