gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
阅读:2063回复:0

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

楼主#
更多 发布于:2007-11-27 09:54
<DIV class=postText>在ArcGIS属性表中,一般不会包含实体几何信息,可以采取VBA进行计算。下面是几个简单的代码(转载自集思学院)<BR>
<DIV>特点:<BR>1推荐给不会使用AO的朋友<BR>2可以保存为CAL文件以备下次方便使用<BR><BR>使用方法<BR>1打开属性表,选择计算的字段,右点选择Calculate Values;</DIV>
<DIV>2.选择“是”,进入Field Calculator;</DIV>
<DIV>2选择Advance选项;<BR>3 在Pre-Logic VBA Script Code编辑框中输入VBA代码;<BR>4在下面编辑框中输入赋值部分.<BR><BR><BR>1--点坐标X<BR>VBA部分:<BR>Dim pGeo As IGeometry<BR>Set pGeo = [Shape]<BR>Dim pPoint As IPoint<BR>Set pPoint = pGeo<BR>赋值部分:<BR>pPoint.X<BR><BR>2--点坐标Y<BR>VBA部分:<BR>同上<BR>赋值部分:<BR>pPoint.Y<BR><BR><FONT color=#ff0000>坐标值为文件存储的固有值,和是否使用On the Fly坐标表示无关。返回当前显示的坐标值参看8,9</FONT><BR><BR>3--多边形周长<BR>VBA部分:<BR>Dim pGeo As IGeometry<BR>Set pGeo = [Shape]<BR>Dim pPolygon As IPolygon<BR>Set pPolygon = pGeo<BR>赋值部分:<BR>pPolygon.Length<BR><BR>4--多边形面积<BR>VBA部分:<BR>Dim pGeo As IGeometry<BR>Set pGeo = [Shape]<BR>Dim pPolygon As IPolygon<BR>Set pPolygon = pGeo<BR>Dim pArea As IArea<BR>Set pArea = pPolygon<BR>赋值部分:<BR>pArea.Area<BR><BR>5--多边形重心X<BR>VBA部分:<BR>Dim pGeo As IGeometry<BR>Set pGeo = [Shape]<BR>Dim pPolygon As IPolygon<BR>Set pPolygon = pGeo<BR>Dim pArea As IArea<BR>Set pArea = pPolygon<BR>Dim pPoint As IPoint<BR>Set pPoint = pArea.Centroid<BR>赋值部分:<BR>pPoint.X<BR><BR>6--多边形重心Y<BR>VBA部分:<BR>同上<BR>赋值部分:<BR>pPoint.Y<BR><BR>7--Polyline长度<BR>VBA部分:<BR>Dim pGeo As IGeometry<BR>Set pGeo = [Shape]<BR>Dim pPolyline As IPolyline<BR>Set pPolyline = pGeo<BR>Dim pCurve As IPolycurve<BR>Set pCurve = pPolyline<BR>赋值部分:<BR>pCurve.Length<BR><BR>8--表示点坐标X<BR>VBA部分:<BR>Dim pDoc As IMxDocument<BR>Set pDoc = ThisDocument<BR>Dim pSpRef As ISpatialReference<BR>Set pSpRef = pDoc.FocusMap.SpatialReference<BR><BR>Dim pClone As IClone<BR>Set pClone = [Shape]<BR>Dim pGeo As IGeometry<BR>Set pGeo = pClone.Clone<BR>Dim pPoint as IPoint<BR>Set pPoint = pGeo<BR><BR>pGeo.Project pSpRef<BR>赋值部分:<BR>pPoint.X<BR><BR>9--表示点坐标Y<BR>VBA部分:<BR>同上<BR>赋值部分:<BR>pPoint.Y<BR><BR><FONT color=#ff0000>坐标值为On the Fly显示的坐标,不是文件存储的固有坐标</FONT><BR><BR>10--连续编号<BR>VBA部分:<BR>Static lCount as long<BR>lCount=lCount+1<BR>赋值部分:<BR>lCount (从1开始)<BR>lCount-1 (从0开始)</DIV></DIV>
喜欢0 评分0
GIS麦田守望者,期待与您交流。
游客

返回顶部