superMap objects 的ComponentStructure文档
- 格式:pdf
- 大小:1.13 MB
- 文档页数:51


移动GIS 开发平台iMobile for iOS iMobile for Android地图制作/阅读软件iMapEditor iMapReader轻量移动端SDK iClient for iOS iClient for Android iClient for Win8组件式GIS 开发平台iObjects Java iObjects .NET桌面GIS 平台iDesktop浏览器端SDKiClient for JavaScript iClient for FlashiClient for Silverlight iClient for 3DiClient for Flash3DGIS 公有云超图云、地图汇云GIS 平台软件iPortal iServer iExpress•二三维GIS •企业级服务器•跨平台•面向服务的架构•提供面向服务的组件•多种类型的富客户端开发控件•三维插件DSS DataService(REST)MapService(REST)…REST MapService(WMS)WMSMap ComponentData ComponentUGCMap Provider UGCDataProviderRealspaceComponentRealspaceProvider服务提供者层WMSMapProviderWFS第三方WMS服务SuperMapGIS内核……•浏览地图、地图缩放、平移•地图量算、地图查询•专题图•对数据源、数据集进行查询•对数据集进行在线编辑,增删改•最佳路径分析、多\旅行商分析•服务区分析、选址分区•对几何对象/数据集的裁剪、擦除、同一、相交、合并、更新、对称差。
•缓冲区分析、空间关系分析、线型参考分析•提取等值线•交通换乘方案分析•公交站点查询•三维数据的发布•三维场景的发布,可以通过Realspace插件在线浏览三维数据,查询三维数据企业级GIS服务器特性GIS服务开发平台特性二、三维数据的显示(二维场景&三维场景)二维数据的查询三维显示二维数据的分析三维显示二维数据的编辑与管理三维显示无缝的服务聚合能力OGC 部分服务天地图服务Super Map云服务ArcGIS 地图REST 服务iServer 服务器REST服务W*S服务……服务Super Map服务Bing Maps 服务SuperMap iServer具有嵌套聚合能力,也是目前GIS平台中唯一具有此功能的软件•高-稳定性•快-运算效率•多级多模式缓存•统一-缓存模型•快速-提高客户端响应•高-并发访问能力•高-伸缩性•高-稳定性•智能感应负载,自动增加或减少节点A. 自动伸缩•往新增空节点推送数据和应用B.自动部署•主节点更新后,自动同步关联子节点C.自动同步iServerAgentiServer AgentHTTP响应HTTP响应HTTP响应适应云计算“动态伸缩”特性iServer集群体系天津土地利用图数据长春市交通换乘服务……多平台嵌入式设备移动终端桌面交互平台专业应用系统浏览器SuperMap iServer空间数据库DSSDataService(REST)MapService (REST)…MapService (WMS)。
SuperMapObjects数据编辑[只读][兼容模式]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 = /doc/37113245.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, objRecAddNew((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 = /doc/37113245.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 = /doc/37113245.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)。
支持中心培训部北京超图软件股份有限公司示范数据:SuperMap\SuperMap Objects .NET 6R\SampleData\World\World.sdb、sdd6R\SampleData\World\World sdb示范工程:参考联机帮助中的快速人门示范工程参考联机帮助中的快速人门创建一个新工程加载工作空间和地图控件打开World.smw中的第一张地图地图窗口基本操作Step1:打开VS2008,新建一个C# Windows应用程序,程序目录设置为C:\Myproject,工程命名为序程工程命名为GettingStartedStep2:将安装目录下的示范数据World.smw/sdb/sdd拷贝到C:\Myproject目录下Step3:将Workspace和MapControl控件加载到窗体上体Step1:在ToolBox(工具箱)上找到SuperMap选项卡Step2:将名称为“Workspace”和“MapControl”的组件添加到窗体上Step3:简单设计窗体界面Step4:添加按钮控件Button1,控件Name属性设置为btnOpenMap,控件Text属性设置为“打开地bt O M控件T t图”Step5:进入代码界面,添加SuperMap引用using System;using System.Collections.Generic;using ponentModel;using System.Data;g y;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;//添加以下代码using SuperMap.Data;using SuperMap.Mapping;using SuperMap.UI;Step6:添加Form1_Load事件,并在Form1_Load事件中添加代码private void Form1_Load(object sender,EventArgs e){//添加以下代码,地图控件与工作空间控件关联添加以下代码地图控件与工作空间控件关联mapControl1.Map.Workspace = workspace1;}Step7:添加Form1_FormClosing事件(参考Form1_Load事件打开方法)并在Form1LoadForm1_FormClosing事件中添加代码private void Form1_FormClosing(object sender, FormClosingEventArgs e){//添加以下代码,断开控件连接mapControl1.Dispose();workspace1.Dispose();}Step8:在“打开地图”按钮双击事件里添加代码private void btnOpenMap_Click(object sender, EventArgs e) {//----------------------------------------// //添加以下代码// WorkspaceConnectionInfo WorkspaceConnectionInfo= new WorkspaceConnectionInfo();WorkspaceConnectionInfo.Server="C:\\Myproject\\World.smw";p yp p yp;WorkspaceConnectionInfo.Type= WorkspaceType.SMW;workspace1.Open(WorkspaceConnectionInfo);string MapName=workspace1.Maps[0];mapControl1.Map.Open(MapName);mapControl1.Map.ViewEntire();mapControl1.Map.Refresh();}Step9:添加5个按钮控件,顺序将控件Name属性设置为btnZoomIn,btnZoomOut,btnZoomFree ,btnPan,btnViewEntire;控件Text属性顺序设置为放大地图,缩小地图,自由缩放置为“放大地图”“缩小地图”“自由缩放”,“平移地图”,“全幅显示”。