欢迎来到天天文库
浏览记录
ID:15045382
大小:116.50 KB
页数:9页
时间:2018-08-01
《mapobejcts组件应用设计(地图与图层)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2.2.1地图浏览在地图窗口中,放大、缩小、漫游地图是地图控件的基本功能,运行附属光盘中的liulan程序,体会浏览的操作含义。liulan程序主窗口中含有一个工具栏和一个地图窗口,工具栏中的按钮功能依次是漫游、全范围显示地图、放大、缩小,使用这些按钮在地图窗口中用鼠标左键进行单击及拖放操作,体验操作过程。放大、缩小、漫游是MapObjects.Map控件提供的功能,浏览功能由Map控件的方法实现。在以下关于浏览项功能的程序语句中,Map1是添加到Form窗体上的Map控件,是Map的一个实例,Map1所占据的矩形区域称为控件窗口,地图在控件窗口中
2、显示,又称地图窗口。以下是liulan程序中实现浏览功能的关键语句。1地图漫游Map1.Pan在Map1控件窗口中,接受鼠标左键的拖放操作,将窗口中的地图从按下鼠标的位置拖到释放鼠标的位置。2全范围显示地图Map1.Extent=Map1.FullExtent‘设置地图窗口的显示范围Map1.FullExtent是Map1窗口中全部图层外围矩形的并,长度单位与地图数据坐标单位相同。Map1.Extent是Map1窗口以地图数据坐标长度单位表示的外围矩形,控置地图的显示范围。语句Map1.Extent=Map1.FullExtent重新设置地图窗口的
3、显示范围,触发地图窗口重绘,产生显示全图视觉效果。3放大(拖框放大)DimrAsMapObjects2.RectangleSetr=Map1.TrackRectangle‘在窗口中拖绘一个矩形,返回矩形的引用IfNotrIsNothingThenMap1.Extent=r‘设置地图窗口的显示范围Map1.TrackRectangle是Map控件交互式绘制矩形的方法,它接收鼠标左键的一次拖放操作。以鼠标按下时光标所在位置为第一点,拖动鼠标光标过程中鼠标的位置为第二点,动态显示一个以这两点为对角线的矩形,松开鼠标时抹去显示的矩形,返回Ractangle
4、实例。Map1.Extent=r语句设置地图窗口的显示范围,触发地图窗口重绘,产生地图放大视觉效果。4缩小DimRectAsMapObjects2.RectangleSetRect=Map1.Extent‘获得地图窗口显示范围的引用Rect.ScaleRectangle(1.5)‘矩形区长宽值扩大1.5倍Map1.Extent=Rect‘设置地图窗口的显示范围从上面的例句可见,地图的放大和缩小,都是通过重新设置Map1.Extent的值实现的,那么,扩大Map1.Extent矩形区边长的数值,不是放大,而是缩小呢?从操作过程可知,地图窗口的尺寸、地
5、图库中坐标数据的值、Map1.FullExtent矩形的长宽值三组数据始终保持不变。Map1.Extent是Map1.FullExtent中的一个矩形区,若Map1.Extent矩形长宽值增加,表示要显示的地图坐标值范围扩大,由于地图显示窗口大小不变,因此显示的地图变小。5样例解释以下是从样例liulan的Form1窗体中剪贴的两段程序,其中实现了漫游、全范围显示地图、放大、缩小功能。DimstrToolBarValueAsString‘窗体级变量,工具栏上当前按下的按纽PrivateSubMap1_MouseDown(ButtonAsIntege
6、r,ShiftAsInteger,XAsSingle,YAsSingle)SelectCasestrToolBarValueCase“漫游”Map1.PanCase“全图”Map1.Extent=Map1.FullExtent‘全范围显示地图Case“放大”IfButton=1AndShift=0ThenDimrAsMapObjects2.RectangleSetr=Map1.TrackRectangle‘在窗口中绘制一个矩形,返回矩形的引用IfNotrIsNothingThenMap1.Extent=rEndIfCase“缩小”DimRectAs
7、MapObjects2.RectangleSetRect=Map1.ExtentRect.ScaleRectangle(1.5)Map1.Extent=RectEndSelectEndSubPrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)strToolBarValue=ButtonSelectCaseButtonCase“漫游”Map1.MousePointer=moPan‘MapObjects控件库中的常量Case“放大”Map1.MousePointer=moZoom
8、InCase“缩小”Map1.MousePointer=moZoomOutCase“全图”Map1.MousePointe
此文档下载收益归作者所有