『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯
首页 -> 3S基础知识 -> MapInfo-> 正文

MapX应用教程(4)—对象编辑

MapX应用教程(4)—对象编辑
       对属性的编辑主要使用Fields对象。

       四、对象编辑

       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工具句柄

‘传过来的参数:X1Y1X2Y2

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

      京ICP备08100627号-22 京公网安备 11010802030428号