在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
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

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開始)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章