一、添加新特征
要在主题中创建新特征,必须同时在视图中创建特征并在特征表中添加相应记录。只有当主题为形文件(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 创建特征和记录(添加属性记录)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。