山哥计算机地图制图.doc_第1页
山哥计算机地图制图.doc_第2页
山哥计算机地图制图.doc_第3页
山哥计算机地图制图.doc_第4页
全文预览已结束

下载本文档

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

文档简介

计算机地图制图上机实习报告四学生姓名: 张俊山 学生学号: 0809100122 所在班级: 10地理信息系统 实习时间: 2012-11-28 实习地点: 城环学院机房 实验目的:添加鹰眼功能,实现两个Map控件的所以联动验证identify功能,即空间到属性信息的查询,点击地图在listview中显示地物属性点击combo上的属性字段,在list中显示所有记录的该属性字段的值实验内容:实现鹰眼功能(1) 在加图层的地方给map2加个图层 Map2.Layers.Add layer(2) 使Map2和Map1联动; map1改变map2Private Sub Map1_AfterLayerDraw(ByVal Index As Integer, ByVal canceled As Boolean, ByVal hdc As stdole.OLE_HANDLE) If Index = 0 Then Map2.TrackingLayer.Refresh True End IfEnd Sub(3) 在Map2上画红色指示框;Private Sub Map2_AfterTrackingLayerDraw(ByVal hdc As stdole.OLE_HANDLE) Dim sym As New Symbol sym.OutlineColor = moRed sym.Size = 2 sym.Style = moTransparentFill Map2.DrawShape Map1.Extent, symEnd Sub(4) 实现用Map2改变Map1的功能;Private Sub Map2_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Dim curRectangle As MapObjects2.Rectangle Dim pt As New MapObjects2.Point 画方框改变Map1窗口 Set curRectangle = Map2.TrackRectangle Set Map1.Extent = curRectangle 点击改变Map1位置 Set pt = Map2.ToMapPoint(x, y) Map1.CenterAt pt.x, pt.yEnd Sub实现identify功能,完成空间到属性的查询添加ListView控件,并把ListView1的属性中查看项改成3-lvwreport。identify的实现 点击地图进行查询,在listview1中显示当前地物的属性 注意把ListView1的属性中查看改成3-lvwreport才行 在Form1的Load事件中对ListView的列头进行初始化,即要显示相关地物的哪几项属性Private Sub Form_Load() Set Col = ListView1.ColumnHeaders.Add() Col.Text = Field Set Col = ListView1.ColumnHeaders.Add() Col.Text = ValueEnd Sub在Map1的MouseDown事件中添加如下代码:Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Set l = Map1.Layers(0) Set p = Map1.ToMapPoint(x, y) Set recs = l.SearchShape(p, moPointInPolygon, ) 针对polygon If Not recs.EOF Then ListView1.ListItems.Clear For Each fld In recs.Fields Set newItem = ListView1.ListItems.Add newItem.Text = fld.Name newItem.SubItems(1) = fld.ValueAsString Next fld End IfEnd Sub完成属性查询点击combo1上的属性字段,在list1中显示该字段所有数值,即一列数据(点击combo1上的属性字段,在list1中显示该字段所有数值)在form load中加入如下代码: Combo1.Text = Select a field name Set Recs = Map1.Layers(0).Records For Each f In Recs.Fields Combo1.AddItem (f.Name) Next f在Combo1的Click事件中加入如下代码:Private Sub Combo1_Click() Set Recs = Map1.Layers(0).Records List1.Clear Do While Not Recs.EOF List1.AddItem Recs.Fields

温馨提示

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

评论

0/150

提交评论