SuperMap实验报告.docx
- 文档编号:28998182
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:17
- 大小:795.11KB
SuperMap实验报告.docx
《SuperMap实验报告.docx》由会员分享,可在线阅读,更多相关《SuperMap实验报告.docx(17页珍藏版)》请在冰豆网上搜索。
SuperMap实验报告
实验三:
SuperMap数据转化与GIS功能设计
一、数据的制作与文件转换
1、使用上次实验所制作的常熟室数据(行政边界、山、水、储备地块等图层);
2、在SuperMap的桌面范例程序中把上述制作的图层转为.sdb文件;
最终效果:
二、系统界面设计与GIS功能实现
在VB中右击
,选择部件,选择
1、在form_load事件中编写代码,打开上述.sdb文件;
2、编写代码实现地图放大、缩小、漫游、选择和全图显示功能;
PrivateSubCommand1_Click()'放大
SuperMap1.Action=scaZoomIn
EndSub
PrivateSubCommand2_Click()'缩小
SuperMap1.Action=scaZoomOut
EndSub
PrivateSubCommand3_Click()'漫游
SuperMap1.Action=scaPan
EndSub
PrivateSubCommand4_Click()'选择
SuperMap1.Action=scaSelect
EndSub
PrivateSubCommand5_Click()'全图显示
SuperMap1.ViewEntire
EndSub
结果:
1)放大;
2)缩小
3)漫游
4)全图显示;
5)选择
3、系统具有自动滚屏功能;
PrivateSubOption1_Click()
IfOption1.Value=TrueThen
SuperMap1.MarginPanEnable=True
SuperMap1.MarginPanPercent=0.2
SuperMap1.MarginPanWidth=10
EndIf
EndSub
PrivateSubOption2_Click()
SuperMap1.MarginPanEnable=False
EndSub
4、当用鼠标选中某一多边形对象时,该对象放大到充满整个地图窗口;
先选择‘选择’按钮进行选择,然后点击‘全屏放大对象’,代码如下:
PrivateSubCommand1_Click()
DimselAssoSelection
DimresetAssoRecordset
Setsel=SuperMap1.Selection
Setreset=sel.ToRecordset(False)
SuperMap1.EnsureVisibleRecordsetreset
SuperMap1.Refresh
EndSub
5、编写代码,通过消息框(MsgBox)或其他方式输出本系统数据图层的个数;
代码如下:
PrivateSubCommand2_Click()
DimlayersAssoLayers
DimlaycountAsInteger
Setlayers=SuperMap1.layers
laycount=layers.Count
MsgBox"地图中共有"+Str(laycount)+"个图层",vbOKOnly
Setlayers=Nothing
EndSub
6、对视图实现锁定功能,防止视图的无限制的缩小和漫游;
代码如下:
PrivateSubCommand3_Click()
IfSuperMap1.LockMapViewBounds=TrueThen
SuperMap1.LockMapViewBounds=False
Else
SuperMap1.LockMapViewBounds=True
EndIf
EndSub
7、编写代码实现地图的偏移,使地图中心点坐标(X,Y)分别偏移100个单位;
PrivateSubCommand4_Click()
DimdmapxAsDouble
DimdmayyAsDouble
DimdoffsetxAsDouble
DimdoffsetyAsDouble
dmapx=100
dmapy=100
doffsetx=dmapx+SuperMap1.ViewBounds.CenterPoint.x
doffsety=dmapy+SuperMap1.ViewBounds.CenterPoint.y
SuperMap1.Pan2doffsetx,doffsety
SuperMap1.Refresh
EndSub
8、写出在图层上画点、线和矩形(用红色显示)的程序代码;
代码如下:
PrivateSubCommand12_Click()
SuperMap1.Action=scaTrackPoint
EndSub
PrivateSubCommand13_Click()
SuperMap1.Action=scaTrackPolyline
EndSub
PrivateSubCommand9_Click()
SuperMap1.Action=scaTrackPolygon
EndSub
PrivateSubSuperMap1_Tracked()
DimoAssoGeometry
DimpAsNewsoStyle
p.PenColor=vbRed
Seto=SuperMap1.TrackedGeometry
SuperMap1.TrackingLayer.AddEvento,p,""
SuperMap1.Refresh
EndSub
结果:
9、实现信息查询功能,当用鼠标选中某一对象后,用列表框或消息框输出该对象的某些属性信息。
代码如下:
PrivateSubCommand10_Click()
SuperMap1.Action=scaSelect
EndSub
PrivateSubSuperMap1_GeometrySelected(ByValnSelectedGeometryCountAsLong)
DimobjRecordSetAssoRecordset '属性对象
DimiAsInteger '循环变量
DimstrName(20)AsString '存储属性名
DimstrValue(20)AsString '存储属性值
DimstrMessageAsString '显示所有信息
SetobjRecordSet=SuperMap1.Selection.ToRecordset(False) '提取所选对象的属性数据
objRecordSet.MoveFirst '移到第一条属性
Fori=1ToobjRecordSet.FieldCount
strName(i-1)=objRecordSet.GetFieldInfo(i).Name '得到属性名
strValue(i-1)=objRecordSet.GetFieldValue(i) '得到属性值
Next
strMessage=""
Fori=0ToobjRecordSet.FieldCount
strMessage=strMessage&strName(i)&":
"&strValue(i)&Space(5)&vbCrLf
Next
MsgBoxstrMessage
SetobjRecordSet=Nothing '释放内存
EndSub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SuperMap 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)