For I=1 to Ftrs.Count ‘执行语句 Next
SET Pnt =Nothing set TempCir =Nothing set FeaFac =Nothing
3、 相交 判断两个图元是否有交点以及交点坐标信息。 (1)判断是否相交 IF Lyr.IntersectionTest( ftr1, ftr2, miIntersectFeature ) THEN ‘交点 END IF
(2)获取相交点坐标信息 ‘交点 Dim Ftr AS MapXlib.Feature
SET Ftr=MainMap.FeatureFactory. IntersectFeatures(Ftr1,Ftr2) ‘交点坐标信息 For J=1 to Ftr.parts.item(1).count X1= Ftr.parts.item(1).Item(J).X Y1= Ftr.parts.item(1).Item(J).Y Next
4、 测距 使用Map对象的Distance方法。如何测量任意多边形的周长? 使用累加的方法,还要使用图元节点集合。 DistanceValue=0 ‘第一个点 Pnt.Set Ftr.Parts.Item(1).Item(1).X, Ftr.Parts.Item(1).Item(1).Y For j=2 TO Ftr.Parts.Item(1).Count ‘累加 X1= Ftr.Parts.Item(1).Item(j-1).X Y1= Ftr.Parts.Item(1).Item(j-1).Y X2= Ftr.Parts.Item(1).Item(j).X Y2= Ftr.Parts.Item(1).Item(j).Y DistanceValue = DistanceValue +MainMap.Distance(X1, Y1, X2, Y2) Next ‘多边形周长 Msgbox DistanceValue+” ”+MainMap.MapUnit
四、对象编辑
(1)、对属性的编辑 主要使用Fields对象。示例: Dim Flds AS MapXlIB.Fields
‘修改当前图层的每一个字段 For J=1 to Flds.Count Lyr.KeyField= Flds.Item(j).Name ‘使当前图层指向J字段 ‘更新当前图元的J字段值 Ftr.KeyValue=NewValueStr(J) Ftr.Update True ‘并未写入硬盘 Next Lyr.Refresh ‘保存修改到硬盘
(2)、移动地图 首先创建一个移动工具句柄 MainMap.CreateCustomTool MoveFeature, miToolTypeLine, miPanCursor 在Map对象的ToolUsed事件的ToolNum参数为当前所激活的工具捕捉MoveFeature工具句柄‘传过来的参数:X1,Y1,X2,Y2 Select case ToolNum …….. Case MoveFeature Dim Lyr AS MapXlib.Layer Dim Ftr AS MapXlib.Feature Dim Ftrs AS MapXlib.Features
Dim Xe,Ye AS Double ‘坐标偏移量
Xe=X2-X1 Ye=Y2-Y1
Set Lyr=Mainmap.Layers.Item(LayerName) Set Ftrs=Lyr.Selection.Clone ‘将当前图层中选定的集合复制到Ftrs变量中 MainMap.AutoRedraw=False Lyr.Editable=True For J=1 to Ftrs.Count Set Ftr=Ftrs.Item(J) Ftr.Offset Xe,Ye Ftr.Update True Next Lyr.Refresh Lyr.Editable=False MainMap.AutoRedraw=True
SET lyr=Nothing SET Ftr=Nothing End Select (3)、样式更新 Dim NewStyle AS MapXLib.Style
‘初始赋值 Set Lyr=MainMap.Layers.Item(LayerName) Set Ftrs=Lyr.AllFeatures Set NewStyle=Ftrs.Item(1).Style ‘设置样式 With NewStyle .SymbolType = miSymbolTypeBitmap .SymbolBitmapSize = 24 .SymbolBitmapTransparent = False .SymbolBitmapName = YIEL2-32.BMP End With ‘更新 MainMap.AutoRedraw=False Lyr.Editable=True SET Ftr.Style=NewStyle Ftr.Update True Lyr.Refresh Lyr.Editable=False MainMap.AutoRedraw=True
(责任编辑:admin) |