gis 小结.doc_第1页
gis 小结.doc_第2页
gis 小结.doc_第3页
gis 小结.doc_第4页
gis 小结.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基本几何运算:l 计算点集的凸闭包,即最小外接多边形。返回一个简单凸多边形。soGeoRegion soGeometrist.ConvexHull(objPoints As soPoints)l 计算线与线的倒圆角,返回倒圆角所对应的弧段。 soGeoArc soGeometrist.Fillet(objStartPoint1 As soPoint,objEndPoint1 As soPoint,objStartPoint2 As soPoint,objEndPoint2 As soPoint,dRadius As Double)l 根据距离求直线上一点。soPoint soGeometrist.FindPointOnLineByDistance(objStartPoint As soPoint,objEndPoint As soPoint,dDistance As Double)l 求经过指定点与已知直线平行的直线。 soGeoLine soGeometrist.GetParallel(objPoint As soPoint,objStartPoint As soPoint,objEndPoint As soPoint)l 根据距离求已知折线的平行线,返回平行线。 soGeoLine soGeometrist.GetParallel2(objLine As soGeoLine,dDistance As Double)l 计算已知点到已知线的垂线。 soGeoLine soGeometrist.GetPerpendicular(objPoint As soPoint,objStartPoint As soPoint,objEndPoint As soPoint)l 计算已知点到已知线的垂足。 soPoint soGeometrist.GetPerpendicularPosition(objPoint As soPoint,objStartPoint As soPoint,objEndPoint As soPoint)l 计算两条线的交点。soPoint soGeometrist.IntersectLine(objStartPoint1 As soPoint,objEndPoint1 As soPoint,objStartPoint2 As soPoint,objEndPoint2 As soPoint,bExtend As Boolean)l 判断两条线是否平行。Boolean soGeometrist.IsParallel(objStartPoint1 As soPoint,objEndPoint1 As soPoint,objStartPoint2 As soPoint,objEndPoint2 As soPoint)l 判断两条线是否垂直。Boolean soGeometrist.IsPerpendicular(objStartPoint1 As soPoint,objEndPoint1 As soPoint,objStartPoint2 As soPoint,objEndPoint2 As soPoint)l 判断已知点是否在已知线段(直线)上,点在线上返回 True, 否则返回 False。 Boolean soGeometrist.IsPointOnLine(objPoint As soPoint,objStartPoint As soPoint,objEndPoint As soPoint,bExtend As Boolean)soOverlayAnalyst :l 裁剪Boolean soOverlayAnalyst.Clip(objInDataset As soDatasetVector,objClipItem As Object,objOutDataset As soDatasetVector)l 擦除Boolean soOverlayAnalyst.Erase(objInDataset As soDatasetVector,objEraseItem As Object,objOutDataset As soDatasetVector)l 并Boolean soOverlayAnalyst.Union(objInDataset As soDatasetVector,objUnionDataset As soDatasetVector,objOutDataset As soDatasetVector,bJoinAttribute As Boolean)l 交Boolean soOverlayAnalyst.Intersect(objInDataset As soDatasetVector,objIntersectDataset As soDatasetVector,objOutDataset As soDatasetVector,bJoinAttribute As Boolean)l 同一Boolean soOverlayAnalyst.Identity(objInDataset As soDatasetVector,objIdentityDataset As soDatasetVector,objOutDataset As soDatasetVector,bJoinAttribute As Boolean)soNetworkAnalyst :l 指定弧段查找的方向和等级,在网络数据集中查找与指定结点连通的所有弧段。soSelection soNetworkAnalyst.FindConnectedEdges(objNetworkDataset As soDatasetVector,nNode As Long,nDirection As sePathFindingDirection,nLevel As Long)l 查找网络数据集中结点之间的关键边。查找结果放入选择集内,可用于高亮显示。 soSelection soNetworkAnalyst.FindCriticalEdges(objNetworkDataset As soDatasetVector,nFromNode As Long,nToNode As Long,nDirection As sePathFindingDirection)l 查找网络中结点间的最短路径或者最佳路径。查找结果放入选择集内,可用于高亮显示。soSelection soNetworkAnalyst.FindPath(objNetworkDataset As soDatasetVector,nFromNode As Long,nToNode As Long,bShortestOnly As Boolean)l 查找网络中结点间的最佳路径或最短路径。起止结点选择可以设置容限。查找结果放入选择集内,soSelection soNetworkAnalyst.FindPathEx(objNetworkDataset As soDatasetVector,objFromPoint As soPoint,objToPoint As soPoint,dTolerance As Double,bShortestOnly As Boolean)l 旅行商路径分析。查找结果放入选择集内,可用于高亮显示。 soSelection soNetworkAnalyst.FindTSPPath(objNetworkDataset As soDatasetVector,nFromNode As Long,objNodes As soSelection,nToNode As Long,ForwardCostField As VARIANT,BackwardCostField As VARIANT)投影转换:Private Sub MercatorPreDef_Click() soPjCoordSys objPCS =new soPjCoordSys (); objPCS.Type=scPCS_SAD_1969_UTM_19s;If( objPCS.IsProjected ) soPoint objPoint =new soPoint (); objPoint.x=-70.297918;objPoint.y=-40.319224;objPCS.Forward(objPoint); /地理-投影 正算objPCS.Inverse(objPoint); /投影-地理 反算objPoint=null;关闭地图窗口及工作空间,注意顺序 private void frmMain_Closing(object sender, System.ComponentModel.CancelEventArgs e) SuperMap1.Close(); SuperMap1.Disconnect(); SuperWorkspace1.Close(); 地图浏览: this.SuperMap1.ViewEntire(); /全幅显示 this.SuperMap1.Action=SuperMapLib.seAction.scaZoomIn; /放大 this.SuperMap1.Action = SuperMapLib.seAction.scaZoomOut; /缩小 this.SuperMap1.Action = SuperMapLib.seAction.scaPan; /漫游 this.SuperMap1.Action = SuperMapLib.seAction.scaZoomFree; /自由缩放 图查属性:l 在窗体中加入一个名字为“cmdQueryProperties”的按钮private void cmdQueryProperties_Click(object sender, System.EventArgs e) this.SuperMap1.Action=SuperMapLib.seAction.scaSelect; /图查属性 l 在 SuperMap 控件的事件“GeometrySelected”中键入如下代码: private void SuperMap1_GeometrySelected(object sender, AxSuperMapLib._DSuperMapEvents_GeometrySelectedEvent e) SuperMapLib.soSelection objSelection; SuperMapLib.soRecordset objRd; objSelection=this.SuperMap1.selection; objRd=objSelection.ToRecordset(false); /提取所选对象的属性数据 string str=; for (int i=1 ;i=objRd.FieldCount;i+) str+=objRd.GetFieldInfo(i).Name ; /得到属性名 str+=:+objRd.GetFieldValue(i).ToString()+n; /得到属性值 MessageBox.Show(str,MyFirstSuperMap); 属性查图: private void cmdQueryMap_Click(object sender, System.EventArgs e)if (this.txtExpression.Text=) MessageBox.Show(查找信息不能为空); return; SuperMapLib.soDatasetVector objDtv; /矢量数据集 SuperMapLib.soDataset objDt; SuperMapLib.soSelection objSelection; /选择集 SuperMapLib.soRecordset objRd; /记录集 /取矢量数据集:取其中面数据集World进行查询 objDt=this.SuperWorkspace1.DatasourcesMyDataSource.DatasetsWorld; objDtv=(SuperMapLib.soDatasetVector)objDt; /使用 SQL 过滤条件从数据集中查询出记录集,SQL 条件的 WHERE 子句部分从编辑框中获取。( Query 方法只适用于 soDatasetVector 类对象) objRd=objDtv.Query(this.txtExpression.Text,true,null,); /将查询结果加入到选择集中,使其高亮显示 objSelection=this.SuperMap1.selection; objSelection.FromRecordset(objRd); /刷新地图窗口 this.SuperMap1.Refresh(); AxSuperWorkspace ws =new AxSuperWorkspace; /new工作空间AxSuperMap map =new AxSuperMap ; /new地图map.Connect(ws.ctrlHandle); /地图与工作空间相连ws.Open(c:china.smw); /打开工程文件soDataSources dataSrs =ws.DataSources; /数据源集合soDataSource dataSr =dataSrs1; /数据源soDatasets datasets =dataSr.Datasets; /数据集集合soDataset dataset = datasets1; /数据集soDataset china =ds as soDatasetVector; /转化为矢量数据集soRecordset rs =china.Query(select * from where ); /Query查询 里面为SQL语句map.selection.FromRecordset(rs); /显示记录集从工作空间得到属性字段信息:Using SuperMapLib;AxSuperWorkspace ws =new AxSuperWorkspace; /new工作空间AxSuperMap map =new AxSuperMap ; /new地图map.Connect(ws.ctrlHandler); /地图与工作空间相连ws.Open(c:china.smw); /打开工程文件soDataSources dataSrs =ws.DataSources; /数据源集合soDataSource dataSr =dataSrs1; /数据源soDatasets datasets =dataSr.Datasets; /数据集集合soDataset dataset = datasets1; /数据集soDatasetVector dsV =dataset as soDatasetVector; /转化为矢量数据集soFieldInfos infos =dsV.GetFieldInfos();/取字段信息int count =infos.Count;/字段个数for(int i=1; i=count;i+) String strFieldName=infos1.Name; /得到字段名得到某图层的属性字段个数:Using SuperMapLib;soLayers lyrs =map.layers;soDataSet ds =lyrs1.dataset;int num =(soDatasetVector)ds).Get

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论