版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.:.;第三讲 图层标注、图层控制和电子地图常用工具开发一、图层标注利用MO的标注对象LabelRenderer,可以自动添加图层上对象的标注。1、属性标注属性标注的方法为:Set layer.Renderer = New LabelRenderer 设置标注对象layer.Renderer.Field = CNTRY_NAME 指定要显示的字段layer.Renderer.AllowDuplicates = True 允许标注反复标注语句要加在图层添加语句:Map1.Layers.Add layer的前面。几点阐明:Renderer是MapLayer的属性之一,用于设置或读取图层的着色对象。
2、着色对象有ClassBreaksRenderer对象,DotDensityRenderer对象,LabelRenderer对象和ValueMapRenderer对象。其中,LabelRenderer对象描画一种表示地理特征的方法,即在一个地理特征上写字符。显示在地理特征的字符值一个字段的值,Field属性表示该字段的名字。AllowDuplicates属性是一个布尔值,表示能否允许在标注处多次标注同样的字符,True为允许,false为不允许。2、设置图上字体以上的标注是按照缺省的方式来设置的字体,还可以利用标注对象的Symbol数组,来本人动手设置更适宜的字体属性。layer.Rendere
3、r.Symbol(0).Font.Name = 隶书layer.Renderer.Symbol(0).Font.Bold = Falselayer.Renderer.Symbol(0).Color = moRedlayer.Renderer.Symbol(0).Font.Size = 20以上设置的字体是固定大小,不随着图形大小的改动而改动。layer.Renderer.Symbol(0).Height = 10这时Height设置有优先设置权,Font.Bold和Font.Size将不起作用。二、图层控制1、利用check控件控制图层的显示和文字标注用程序添加图层时,系统会自动设置图层对象的
4、序号,最后添加的为图层0,其上为图层1,依次类推。Option ExplicitDim dc As New DataConnectionDim layer As MapLayer Private Sub Check3_Click() Set layer = Map1.Layers(2) If Check3.Value = 0 Then layer.Visible = False Else layer.Visible = True End If Map1.RefreshEnd Sub Private Sub Check2_Click() Set layer = Map1.Layers(1) If
5、 Check2.Value = 0 Then layer.Visible = False Else layer.Visible = True End If Map1.RefreshEnd Sub Private Sub Check1_Click() Set layer = Map1.Layers(0) If Check1.Value = 0 Then layer.Visible = False Else layer.Visible = True End If Map1.RefreshEnd Sub Private Sub Check4_Click() Set layer = Map1.Laye
6、rs(0) Set layer.Renderer = New LabelRenderer If Check4.Value = 0 Then layer.Renderer.AllowDuplicates = False Else Call Layer0Render(layer) End If Map1.RefreshEnd Sub Private Sub Layer0Render(layer1 As MapLayer) 反复设置LabelRenderer对象的过程 Set layer1.Renderer = New LabelRenderer layer1.Renderer.Field = NA
7、ME 指定要显示的字段 layer1.Renderer.Symbol(0).Font.Name = Times New Roman layer1.Renderer.Symbol(0).Font.Bold = False 缺省为True layer1.Renderer.Symbol(0).Color = moBlack layer1.Renderer.Symbol(0).Font.Size = 8 layer1.Renderer.AllowDuplicates = TrueEnd Sub Private Sub LayerSet() Set layer = New MapLayer Set la
8、yer.GeoDataset = dc.FindGeoDataset(states) layer.Symbol.Color = moYellow layer.Symbol.Size = 1 layer.Symbol.Style = 2 layer.Symbol.OutlineColor = moBrown Map1.Layers.Add layer Set layer = New MapLayer Set layer.GeoDataset = dc.FindGeoDataset(roads) layer.Symbol.Color = moDarkGreen layer.Symbol.Size
9、= 2 Map1.Layers.Add layer Set layer = New MapLayer Set layer.GeoDataset = dc.FindGeoDataset(Cities) layer.Symbol.Color = moRed layer.Symbol.Size = 4 layer.Symbol.Style = 0 Call Layer0Render(layer) Map1.Layers.Add layerEnd Sub Private Sub Form_Load() dc.Database = F:MO实验USA If Not dc.Connect Then Msg
10、Box 在指定的文件夹下没找到图层数据文件! End End If LayerSet Map1.RefreshEnd Sub几点阐明:Layers对象的属性只需一个,即count。这个值表示Layers集合当前具有多少个图层,假设这个值为-1,阐明图层不确定。Call 语句,将控制权转移到一个 Sub 过程,Function 过程。如:Call Layer0Render(layer),调用Layer0Render(layer)过程。2、运用Legend控件运用Legend组件,可以调用图层控制功能。添加Legend控件后,在Form_Load过程中写入:legend1.setMapSource
11、 Map1;legend1.LoadLegend True,再添加AfterSetLayerVisible过程,Map1.Refresh,可以在取消和添加图层后刷新。运转程序后,可以看见Legend控件不仅可以自动标上图层称号,而且可以上下拖动,改动加载的顺序。加上legend1.EnableDragDrop = False可以取消图层拖动的功能,还可以在Legend控件的属性框中设置字体,backcolor、forecolor等。另外在Legend上不能控制图层的标注,但可以多加载一个显示标注的图层的迂回方法,就可以实现控制图层标注的目的。例如代码如下:Option ExplicitDim
12、dc As New DataConnectionDim layer As MapLayer Private Sub legend1_AfterSetLayerVisible(index As Integer, isVisible As Boolean) Map1.RefreshEnd Sub Private Sub LayerSet() Set layer = New MapLayer Set layer.GeoDataset = dc.FindGeoDataset(区县) layer.Symbol.Color = moOrange layer.Symbol.Size = 1 layer.Sy
13、mbol.Style = 9 layer.Symbol.OutlineColor = moBrown layer.Name = 行政区 Map1.Layers.Add layer Set layer = New MapLayer Set layer.GeoDataset = dc.FindGeoDataset(河流1) layer.Symbol.Color = moDarkGreen layer.Symbol.Size = 2 layer.Name = 河流 Map1.Layers.Add layer Set layer = New MapLayer Set layer.GeoDataset
14、= dc.FindGeoDataset(测站) layer.Symbol.Color = moRed layer.Symbol.Size = 3 layer.Symbol.Style = 0 layer.Name = 测站 Set layer.Renderer = New LabelRenderer layer.Renderer.Field = NAME 指定要显示的字段 layer.Renderer.Symbol(0).Font.Name = 幼圆 layer.Renderer.Symbol(0).Font.Bold = False 缺省为True layer.Renderer.Symbol
15、(0).Color = moBlack layer.Renderer.Symbol(0).Font.Size = 8 layer.Renderer.AllowDuplicates = True Map1.Layers.Add layerEnd Sub Private Sub Form_Load() dc.Database = App.Path + . + beijing If Not dc.Connect Then MsgBox 在指定的文件夹下没找到图层数据文件! End End If LayerSet legend1.setMapSource Map1 legend1.LoadLegend
16、 True Map1.RefreshEnd Sub三、电子地图常用工具开发电子地图常用工具开发和方法包括指示图locator map、比例尺scalebar和形状栏statusbar、打印功能的设置、鼠标提示tip text的设置以及查看属性设置等。1、运用指示图即鹰眼功能之添加指示窗口普通电子地图系统在主窗口的附近有一个指示图,指示图用显著颜色的方框显示目前主窗口在全图的位置,并可以拖动方框或其他方式,在全图中迅速定位。 例如代码如下:Option ExplicitDim dc As New DataConnectionDim layer As MapLayer Private Sub Fo
17、rm_Load() dc.Database = App.Path + . + world Set layer = New MapLayer Set layer.GeoDataset = dc.FindGeoDataset(country) layer.Symbol.Color = moYellow layer.Symbol.Size = 1 layer.Symbol.Style = 2 layer.Symbol.OutlineColor = moBrown Map1.Layers.Add layer Set layer = New MapLayer Set layer.GeoDataset =
18、 dc.FindGeoDataset(Cities) layer.Symbol.Color = moRed layer.Symbol.Size = 4 layer.Symbol.Style = 0 Map1.Layers.Add layer Set layer = New MapLayer Set layer.GeoDataset = dc.FindGeoDataset(country) layer.Symbol.Color = moPaleYellow Map2.Layers.Add layer Map2.RefreshEnd Sub使Map1和Map2联动,利用AfterLayerDraw
19、事件函数来实现,此方法表示当Map1画完开场执行的事件代码。Private Sub Map1_AfterLayerDraw(ByVal index As Integer, ByVal canceled As Boolean, ByVal hDC As stdole.OLE_HANDLE)If index = 1 Then 代表加载的图层索引号Map2.TrackingLayer.Refresh True TrackingLayer对象是Map控件中的一个特殊层,它描画位置可以动态改动的地理目的。Refresh是其的一个函数,用来强迫刷新新的TrackingLayer对象,此值是一个布尔值。End IfEnd Sub Private Sub Map1_MouseDown(Button As Integer, Shi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版市政基础设施文明施工与环境保护责任协议3篇
- 2025年陕西燃气集团工程有限公司招聘笔试参考题库含答案解析
- 2025年度个人门面房出租合同(含家具配置及经营指导协议)4篇
- 2025年度个人信用卡透支担保合同协议书4篇
- 2025年度个人医疗健康保险缴费协议书4篇
- 2025年全球及中国智能直播一体机行业头部企业市场占有率及排名调研报告
- 2024年六五环境日网络知识竞赛测试题库及答案
- 设计合同协议书
- 2025年度个人挖机租赁合同变更通知合同4篇
- 二零二五年度车辆收费员薪资待遇及福利协议材料详尽条款4篇
- 第1课 隋朝统一与灭亡 课件(26张)2024-2025学年部编版七年级历史下册
- 2025-2030年中国糖醇市场运行状况及投资前景趋势分析报告
- 【历史】唐朝建立与“贞观之治”课件-2024-2025学年统编版七年级历史下册
- 冬日暖阳健康守护
- 水处理药剂采购项目技术方案(技术方案)
- 2024级高一上期期中测试数学试题含答案
- 盾构标准化施工手册
- 天然气脱硫完整版本
- 山东省2024-2025学年高三上学期新高考联合质量测评10月联考英语试题
- 不间断电源UPS知识培训
- 三年级除法竖式300道题及答案
评论
0/150
提交评论