Mapobjects图形的绘制.doc

上传人:cl****1 文档编号:560777673 上传时间:2023-08-06 格式:DOC 页数:10 大小:516.50KB
返回 下载 相关 举报
Mapobjects图形的绘制.doc_第1页
第1页 / 共10页
Mapobjects图形的绘制.doc_第2页
第2页 / 共10页
Mapobjects图形的绘制.doc_第3页
第3页 / 共10页
Mapobjects图形的绘制.doc_第4页
第4页 / 共10页
Mapobjects图形的绘制.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《Mapobjects图形的绘制.doc》由会员分享,可在线阅读,更多相关《Mapobjects图形的绘制.doc(10页珍藏版)》请在金锄头文库上搜索。

1、本科学生实验报告学号 姓名 学院 专业、班级 实验课程名称 实用GIS开发 教师及职称 开课学期 至 学年 第二学期 填报时间 2011 年 5 月 16 日云南师范大学教务处编印实验序号2实验名称图形的绘制实验时间2011-5-16实验室一实验预习1实验目的 通过此实验,了解Mo的图形绘制功能,学会使用DRAWSHAPE方法在地图上显示一个图形(点,线,面)。2实验原理、实验流程或装置示意图 MO虽然不是绘图软件,但是经常要用到在地图上画点标明位置,画矩形或多边形标明地图查找范围等操作,因此就需要用到一些简单的绘图功能! MO的绘图就是在MAP上产生图形对象的过程。图形对象主要有:point

2、(点),点集(points),线(line),矩形(rectangle),多边形(polygon)和椭圆(Ellipse)。 绘图时,先创建一个图形对象,给它赋值【dim(声明),set(赋值)】,再在symbol对象中定义显示的方式,最后用drawshape方法在地图上显示这个图形。 定义symbol对象,不仅可以设置对象类型(symboltype),填充方式(style),尺寸(size),颜色(color)和字体(font),还可以画出各种预定义符号(点的style中设定)。 除了使用drawshape方法绘图外,还可以用addevent方法在动态图层上画动态图形对象(GeoEvent)

3、。3 实验设备及材料硬件:电脑软件:Visual Basic 6.0和MO4保证实验成功的关键问题 仔细认真,了解每步实验进行的顺序。二实验内容1 实验现象与结果使用drawshape方法Drawshape的语法如下: Object.Drawshape shape,symbol:使用drawshape绘制点代码如下Option ExplicitDim Pts As MapObjects2.PointsDim p As PointDim sym As New SymbolPrivate Sub Map1_AfterTrackingLayerDraw(ByVal hDC As stdole.OLE

4、_HANDLE) 【在AfterTrackingLayerDraw事件下驱动DrawShape】 sym.Color = moRed sym.SymbolType = moPointSymbol symboltype表示要绘制的对象类型 sym.Size = 5 If Not Pts Is Nothing Then Map1.DrawShape Pts, sym 使用drawshape绘点 End IfEnd SubPrivate Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

5、Set Pts = New MapObjects2.Points Set p = Map1.ToMapPoint(X, Y) 获取屏幕点坐标 Pts.Add p Map1.TrackingLayer.Refresh True 与map1建立连接End Sub运行结果如下:使用drawshape绘制线代码如下Option ExplicitDim g_Line As MapObjects2.Line 声明线对象Dim Pts As MapObjects2.Points 声明点集对象Private Sub Command1_Click() 点击command1清空图像 Set g_Line = No

6、thing Set Pts = Nothing Map1.Refresh Set g_Line = New MapObjects2.LineEnd SubPrivate Sub Map1_AfterTrackingLayerDraw(ByVal hDC As stdole.OLE_HANDLE) Dim sym As New Symbol If Not g_Line Is Nothing Then 判断线 sym.Color = moBlack Map1.DrawShape Pts, sym 使用drawshape画点 If Pts.Count 1 Then判断点1才能构成线 sym.Colo

7、r = moRedMap1.DrawShape g_Line, sym 使用drawshape画线End If End IfEnd SubPrivate Sub Map1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim p As Point If Button = 1 Then If g_Line Is Nothing Then Set g_Line = New MapObjects2.Line End IfIf Pts Is Nothing Then Set Pts = New MapO

8、bjects2.Points End If Set p = Map1.ToMapPoint(X, Y) Pts.Add p 将点加入点集 If Pts.Count = 1 Then g_Line.Parts.Add Pts 将点加入线集 Set Pts = g_Line.Parts(0) End If Map1.TrackingLayer.Refresh True Else MsgBox right End If:使用drawshape绘制面此时使用的是track方法可以同时绘制多边形,矩形,园代码如下:Option ExplicitDim Rect As MapObjects2.Rectan

9、gle 定义矩形Dim Eli As MapObjects2.Ellipse 定义椭圆Dim Poly As MapObjects2.Polygon 定义多边形Private Sub Map1_AfterTrackingLayerDraw(ByVal hDC As stdole.OLE_HANDLE) Dim sym As New MapObjects2.Symbol sym.SymbolType = moFillSymbol 绘制对象为多个使用moFillSymbol sym.Style = moDiagonalCrossFill style表示填充方式 If Not Rect Is Not

10、hing Then 判断如果是矩形 sym.Color = moBlue Map1.DrawShape Rect, sym End If If Not Eli Is Nothing Then 判断如果是椭圆sym.Color = moRed Map1.DrawShape Eli, sym End If If Not Poly Is Nothing Then 判断如果是多边形 sym.Color = moGreen Map1.DrawShape Poly, sym End IfEnd SubPrivate Sub Map1_MouseDown(Button As Integer, Shift A

11、s Integer, X As Single, Y As Single) 使用track方法生成图形 If Option1 Then Set Rect = Map1.TrackRectangle ElseIf Option2 Then Set Eli = Map1.TrackCircle Else Set Poly = Map1.TrackPolygon End If Map1.TrackingLayer.Refresh TrueEnd Sub2、实验中出现过的问题(或错误)、原因分析 在调用drawshape时,必须在layer或trackinglayer的drawing事件中,即beforelayerdraw事件,afterlayerdraw事件,befortrackinglayerdraw事件或者aftertrackinglayerdraw事件过程中才有效。3、指导教师评语和实验得分:实验得分: 签名: 年 月 日1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号