文档库 最新最全的文档下载
当前位置:文档库 › SuperMap Objects数据编辑 [只读] [兼容模式]

SuperMap Objects数据编辑 [只读] [兼容模式]

SuperMap Objects培训课程 数据编辑
支持中心 培训部 北京超图软件股份有限公司

主要内容
SuperMap的几何对象 添加新的几何对象 更新空间信息 更新属性字段值
范例工程:Projects\数据编辑示范程序
SuperMap Objects 产品培训课程
(2)

编辑内容 添加新几何对象 更新空间几何对象 更新属性字段值
SuperMap Objects 产品培训课程
(3)

1. SuperMap的几何对象
SuperMap Objects 产品培训课程
(4)

2. 添加几何对象
1
交互式添加几何对象
用户使用鼠标操作的方式 添加几何对象到指定数据 集
2
代码方式添加几何对 象
使用代码控制坐标,精 确添加几何对象到指定 数据集
SuperMap Objects 产品培训课程
(5)

2.1 交互式添加——实现思路
步骤一
步骤二
步骤三
添加对应类型 的图层 AddDataset()
设置图层 可编辑 SetEditable()
设置鼠标 状态 Action属性
SuperMap Objects 产品培训课程
(6)

2.1 交互式添加——主要方法
主要控件
SuperMap 控件 p p
主要对象
soDataset,soLayers
主要方法
soLayers.AddDataset() soLayers.SetEditableLayer() SuperMap.Action属性
SuperMap Objects 产品培训课程
(7)

交互式添加
private void mnuEditPoint_Click(object sender, EventArgs e) mnuEditPoint Click(object { axSuperMap1.Action = seAction.scaEditCreatePoint; //绘制点 }
private void mnuEditLine_Click(object sender, EventArgs e) { axSuperMap1.Action seAction.scaEditCreateLinesect; axSuperMap1 Action = seAction scaEditCreateLinesect; // }
SuperMap Objects 产品培训课程
(8)

2.2 代码方式添加——实现思路
步骤三 步骤二 步骤一
更新几何对象
通过调用记录集 对象的相应方法 ,更新对象到数 据集中
构建几何对象
通过坐标构建各 种类型的几何对 象 (soGeo ) (soGeo*)
获得记录集对 象
通过矢量数据集 对象获得记录集 象获得 集 对象
SuperMap Objects 产品培训课程
(9)

2.2 代码方式添加——主要方法
主要控件
SuperMap控件, SuperMap控件 SuperWorkspace控件
主要对象
soRecordset, soDatasetVector
主要方法
Q y() soDatasetVector.Query()方法 soPoints.Add() / soPoints.Add2() soGeo*.AddPart()方法 soRecordset.AddNew()方法 soRecordset.Update()方法
SuperMap Objects 产品培训课程
(10)

代码方式添加几何对象注意事项
获得记录集对象(soRecordset)
使用soDatasetVector的Query方法 Query使用的小技巧:当不需要操作记录集中的对象时,Query的第 一个条件参数给一个不成立的条件,比如“-1>0” 个条件参数给 个不成立的条件,比如 1>0
调用soRecordset.AddNew()添加之后,要调用Update进行 更新
SuperMap Objects 产品培训课程
(11)

代码方式添加点
soLayer objLayer = https://www.wendangku.net/doc/3b113245.html,yers[1]; objDtV = (soDatasetVector)objLayer.Dataset; objRec = objDtV.Query("-1>0", true, null, ""); objGeoP.x = axSuperMap1.CenterX; bjG S 1C objGeoP.y = axSuperMap1.CenterY; objRec.AddNew((soGeometry)objGeoP, objRec AddNew((soGeometry)objGeoP false);//添加对象 objRec.Update(); //更新数据
SuperMap Objects 产品培训课程
(12)

代码方式添加线
利用代码方式添加线对象到一个线数据集中
主要使用对象: 要使用对象 soPoints soGeoLine soRecordset 主要使用方法: soPoints.Add() soPoints Add2() soPoints Add() / soPoints.Add2() soGeoLine.AddPart() soRecordset.AddNew() () soRecordset.Update()
SuperMap Objects 产品培训课程
(13)

代码方式添加线
objLayer = https://www.wendangku.net/doc/3b113245.html,yers[1]; bjL S M 1L [1] objDv = (soDatasetVector) objLayer.Dataset; objRec = objDv.Query("-1>0", true, null, ""); //构建线对象 objPts.Add2(axSuperMap1.CenterX-100, axSuperMap1.CenterY); objPts.Add2(axSuperMap1.CenterX 100 axSuperMap1 CenterY); objPts Add2(axSuperMap1 CenterX + 100, axSuperMap1.CenterY); objGeoLine.AddPart(objPts); //添加线对象 objRec.AddNew((soGeometry) objGeoLine, false); objRec.Update(); axSuperMap1.Refresh();
SuperMap Objects 产品培训课程
(14)

代码方式添加面
soGeoRegion objGeoRegion = new soGeoRegionClass(); objLayer = https://www.wendangku.net/doc/3b113245.html,yers[1]; objDv = (soDatasetVector)objLayer.Dataset; objRec = objDv.Query("-1>0", true, null, ""); //构建面对象 objPts.Add2(axSuperMap1.CenterX - 100, axSuperMap1.CenterY+100);//左上角 j ( p p , p p ); objPts.Add2(axSuperMap1.CenterX - 100, axSuperMap1.CenterY -100); objPts.Add2(axSuperMap1.CenterX + 100, axSuperMap1.CenterY -100); objPts.Add2(axSuperMap1.CenterX + 100, axSuperMap1.CenterY + 100); //objPts.Add2(axSuperMap1.CenterX -100, axSuperMap1.CenterY+100); 100, axSuperMap1.CenterY 100); objGeoRegion.AddPart(objPts); objRec.AddNew((soGeometry)objGeoRegion, objRec AddNew((soGeometry)objGeoRegion false); //添加面对象 objRec.Update(); //更新数据
SuperMap Objects 产品培训课程
(15)

练习 利用代码方式添加面对象到一个面数据集中
主要使用对象: 主要使用对象 soPoints soGeoRegion g soRecordset 主要使用的方法: soPoints.Add() / soPoints.Add2() soGeoRegion.AddPart() soRecordset.AddNew() soRecordset AddNew() soRecordset.Update()
SuperMap Objects 产品培训课程
(16)

3.更新几何对象
相关接口
soRecordset.Edit() () soRecordset.SetGeometry() soRecordset.Update()
SuperMap Objects 产品培训课程
(17)

4.更新属性字段值
相关接口 soRecordset.Edit() soRecordset.SetFieldValue() soRecordset.Update() soSelection objSel = this.axSuperMap1.selection; if (objSel Count == 1) //仅在选中的为一个对象时 修改字段值 (objSel.Count //仅在选中的为 个对象时,修改字段值 { soRecordset objRd = objSel.ToRecordset(false); j j ( ) objRd.Edit(); objRd.SetFieldValue("SmUserID", 3); objRd.Update(); }
SuperMap Objects 产品培训课程
(18)

数据编辑接口总结
添加新的几何对象
soRecordset.AddNew() soRecordset.Update()
更新几何对象,属性信息不变
soRecordset.Edit() R d t Edit() soRecordset.SetGeometry() soRecordset.Update() p ()
更新字段值,空间信息不变
soRecordset.Edit() soRecordset.SetFieldValue() R d S Fi ldV l () soRecordset.Update()
SuperMap Objects 产品培训课程
(19)

技术支持
电话:
010-******** 转 SuperMap Objects 技术工程师
电子邮箱:
support@https://www.wendangku.net/doc/3b113245.html, pp @ p p
地理信息系统论坛- SuperMap 专区: p p
https://www.wendangku.net/doc/3b113245.html,/bbs/index.asp?boardid=4
SuperMap Objects 产品培训课程
(20)

相关文档
相关文档 最新文档