1、2. 实验02地图浏览功能设计3. 实验03量算设计4. 实验04基本查询设计5. 实验05空间查询设计 三、 实验结果结果: 在VS2010 C#开发环境下建立的第一个项目,在设计窗体上添加SuperMap Objects核心控件后,整个设计环境的截图。截图:设计的地图浏览功能及其代码:private void Form1_Load(object sender, EventArgs e) axSuperMap1.Connect(axSuperWorkspace1.CtlHandle); String strSpaceFileName; strSpaceFileName = E:My proj
2、ectworld.smw; axSuperWorkspace1.Open(strSpaceFileName, ); axSuperMap1.OpenMap(世界地图 private void buttton1_Click(object sender, EventArgs e) this.axSuperMap1.Action = SuperMapLib.seAction.scaPan; private void button1_Click(object sender, EventArgs e) axSuperMap1.Action = SuperMapLib.seAction.scaZoomOu
3、t; private void button2_Click(object sender, EventArgs e) axSuperMap1.Action = SuperMapLib.seAction.scaZoomIn; private void button3_Click(object sender, EventArgs e) axSuperMap1.Action = SuperMapLib.seAction.scaZoomFree; private void button4_Click(object sender, EventArgs e) this.axSuperMap1.ViewEnt
4、ire();系统运行截图:坐标、距离、面积、方位角等量算功能代码:string temp;private void toolStripButton1_Click(object sender, EventArgs e) temp = A this.axSuperMap1.Action = seAction.scaTrackPoint;private void toolStripButton2_Click(object sender, EventArgs e)B axSuperMap1.TrackingLayer.ClearEvents(); axSuperMap1.TrackingLayer.R
5、efresh(); axSuperMap1.Action = SuperMapLib.seAction.scaTrackPolyline; private void toolStripButton3_Click(object sender, EventArgs e)C axSuperMap1.Action = SuperMapLib.seAction.scaTrackPolygon;private void toolStripButton4_Click(object sender, EventArgs e)Dprivate void axSuperMap1_Tracking(object se
6、nder, AxSuperMapLib._DSuperMapEvents_TrackingEvent e) string strCoordinateUnit; strCoordinateUnit = this.axSuperWorkspace1.Datasources1.PJCoordSys.CoordUnits.ToString(); switch(temp) case : this.toolStripStatusLabel1.Text = x: + Math.Round(e.x, 4).ToString() + strCoordinateUnit + + y: + Math.Round(e
7、.y, 4).ToString() + strCoordinateUnit; break; this.toolStripStatusLabel2.Text = 当前长度: + e.dCurrentLength.ToString() + 总长度: + e.dTotalLength.ToString(); this.toolStripStatusLabel3.Text = 总面积: + e.dTotalArea.ToString(); this.toolStripStatusLabel4.Text = 方位角: + e.dCurrentAngle.ToString(); 面积量算截图:实验04基本
8、查询设计图查属性代码: private void button5_Click(object sender, EventArgs e) this.axSuperMap1.Action = seAction.scaSelect; private void axSuperMap1_GeometrySelected(object sender, AxSuperMapLib._DSuperMapEvents_GeometrySelectedEvent e) soSelection objSel; soRecordset objRecordset; String strValue; objSel = ax
9、SuperMap1.selection; if (objSel.Count != 0) objRecordset = objSel.ToRecordset(false); objRecordset.MoveFirst(); strValue = objRecordset.GetFieldValue(Capital).ToString(); MessageBox.Show(strValue, 属性查图代码: private void button6_Click(object sender, EventArgs e) string strQueryTxt; soDataset objDt; soD
10、atasetVector objDtv; soRecordset objRd; Double dRatio; dRatio = 2; objDt = this.axSuperWorkspace1.DatasourcesWorld.DatasetsCountries; objDtv = (SuperMapLib.soDatasetVector)objDt; strQueryTxt = Country like * + this.textBox1.Text + * objRd = objDtv.Query(strQueryTxt, true, null, this.axSuperMap1.sele
11、ction.FromRecordset(objRd); this.axSuperMap1.EnsureVisibleRecordset(objRd, dRatio); this.axSuperMap1.Refresh();图查属性截图:属性查图截图:4. 实验05空间查询设计 空间查询算子基本查询模式:scsExtentOverlap、scsLinCross、scsContaining、scsContainedBy、scsOverlap、scsDisjoint、scsTouch、scsIdentical、scsAreaIntersect常用查询模式:scsCentroidInPolygon、s
12、csCommonPoint、scsCommonLine组合查询模式:scsContainedByNoEdgeTouch、scsContainingNoEdgeTouch、scsContainOrOverlap、scsPointInPolygon、scsTouchNoCross、scsCommonLineOrOverlap、scsCommonPointOrLineCross、scsEdgeTouchOrAreaIntersect、scsAreaIntersectNoEdgeTouch空间查询功能代码:private void button7_Click(object sender, EventA
13、rgs e) axSuperMap1.selection.RemoveAll(); this.axSuperMap1.Action = seAction.scaTrackPolyline; private void axSuperMap1_Tracked(object sender, EventArgs e) soGeometry objSearchGeo =axSuperMap1.TrackedGeometry; if (objSearchGeo = null) MessageBox.Show(未获得用于搜索的对象, 提示 return; soStyle objStyle = new soStyleClass(); objStyle.PenColor = (uint)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1