首页 百科知识 添加新特征

添加新特征

时间:2022-06-19 百科知识 版权反馈
【摘要】:一、添加新特征要在主题中创建新特征,必须同时在视图中创建特征并在特征表中添加相应记录。只有当主题为形文件时才能加入新特征。加入新特征之前用SetEditTableTheme请求将主题激活为可编辑状态。新的记录可以通过向特征属性表theFtab发送Addrecord命令来创建。为了将新建的点shape存在Ftab中,首先用Findfield命令找到字段shape,然后用setvalue将shape存入表中。4.关闭编辑和更新视图特征体加入视图以后,利用SetEditableTheme请求发送给视图来停止编辑。

一、添加新特征

要在主题中创建新特征,必须同时在视图中创建特征并在特征表中添加相应记录。只有当主题为形文件(shape文件)时才能加入新特征。加入新特征之前用SetEditTableTheme请求将主题激活为可编辑状态。

1.创建特征和记录

命令Return Userpoint、ReturnUserLine、ReturnUserpolygon等允许用户用鼠标来定位目标并创建特征。新的记录可以通过向特征属性表theFtab发送Addrecord命令来创建。

2.更新字段shape的值

形文件中Shape字段存储点、线或多边形shape对象。尽管表中也出现point,line,polygon字段,但实际上shape对象已经被存起来了。为了将新建的点shape存在Ftab中,首先用Findfield命令找到字段shape,然后用setvalue将shape存入表中。使用setvalue需要定义字段(theField)、记录(newRecord)和值(newPoint)。

3.视图的投影

可用Getprojection来找到视图的投影,如果有投影方式(thePrj.IsNil.not),则用ReturnUnprojicted请求创建出未经投影变换的坐标。特征放入视图中后,它被变换成其他特征体一样的投影方式。

4.关闭编辑和更新视图

特征体加入视图以后,利用SetEditableTheme请求发送给视图来停止编辑。要在显示窗中看到新加入的特征体,须向视图发送InValidate请求来更新,从而显示新的内容。

以下代码为添加新特征,并创建新记录的示例。

[例6]创建特征和记录

theView=av.GetActiveDoc

pg=theView.GetDisplay.ReturnUserpolygon'获取添加目标位置

theTheme=theView.GetEditableTheme'得到可编辑主题

theField=theTheme.GetFTab.FindField("Shape")

rec=theTheme.GetFTab.AddRecord'添加记录

theTheme.GetFTab.SetValue(theField,rec,pg)'添加特征

theView.SetEditableTheme(nil)'停止编辑

theView.Invalidate'显示新内容

程序运行结果如图7-16、图7-17、图7-18所示。

图7-16 创建特征和记录(设置主题可编辑)

图7-17 创建特征和记录(添加空间目标)

图7-18 创建特征和记录(添加属性记录)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈