《现代电子技术》2007年第6期摘录:杨家武等:利用MapObjec
-
如发现有乱码,请点击下面链接浏览原文
正文摘录:
杨家武等:利用MapObjects开芨Q!墨笪圭矍夔苤遗堑(3)几何图形对象组由Ellipse,lane,Partscolkction,Pointobject,Polygon组成。(4)地址匹配对象组由Addresslocation,Geoeoder,Placelocator,Standardizer组成。(5)实用对象组与投影对象组由Datum,Geoco—ordsys.Geotransformation。Primemeridian,Projcoordsys,Projection,Spheroid,Unit。1.3MapObjeets功能使用MapObjects,你可以完成以下这些功能”’:(1)显示具有多个地图层的地图,如道路、河流和边界线等。(2)放大、缩小和漫游整个地图。(3)显示图形特征(Feature),如点、线、圆和多边形。(4)显示标注字符。(5)通过点击识别图上特征。(6)选择沿线的特征和在矩形、区域、多边形和圆内的特征。(7)选择在已知特征附近规定距离内的特征。(8)使用SQI。语句选择特征。(9)对选择的特征进行基本的统计。(10)查询和更新选择特征的属性数据(Shape格式)。(11)用特定的方法对特征进行着色处理,如Val-ueMapRenderer。(12)用字段值的字符标注特征。(13)动态显示实时或时间系列的数据。以上这些功能只是Mapobjects的基本功能,利用MapObjects提供对象完全可以实现上述功能,MapOb—jeets是一个ActiveX控件,可以完全嵌入开发环境中,并在可视化程序中与其他库和控件无缝连接,只要您有丰富的创造力和想象力。2VB环境下开发GIS关键技术本文以对商场库存管理信息可视化管理的操作、按照循序渐进的原则,展示在VB环境下利用MapObjects开发GIS的关键技术。2.1图层加载在VB上建立一个FORM后,在[q-程]/[部件]中选择“ESRIMapObjects2.2”,就可以从左面的工具箱上向FORM添加Map控件的实例了。运行界面如图1所示。2.2地图显示(放大、缩小、平移)代码如下:PrivateSubMaplMouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)DimcurReetangleAsRectangleHToolbarl.Buttons(1).Value一1ThenMapl.MousePointer=moZoomlnSeteurRectangle—Mapl.TrackRectangle48SetMapl.Extent—curRectangleElselfToolbarl.Buttons(2).Value一1ThenMapl.MousePointer—moZoomOutDimLoeAsNewPointSetLoc—Mapl.ToMapPoint(X,Y)DimmapWidthAsDouble,mapHeightAsDoubleSeteurRectangle—Mapl.ExtentmapWidth—Mapl.Extent.WidthmapHeight—Mapl.Extent.HeightcurRectangle.Right—Loc.X+mapWidthcurRectangle.Left—Loe.X—mapWidtheurRectangle.Top=Loc.Y+mapHeightcurRectangle.Bottom—Loc.Y—mapHeightSetMapl.Extent—eurRectangleElseIfToolbarl.Buttons(3).Value一1ThenMapl.MousePointer—moPanMapl.panEndlfEndSub运行界面如图2。蚪瞅岫n4蛐牡硼:E图1图层加栽的图2地图显示的运行界面运行界面2.3查询功能(货物库存信息查询)代码如下:PrivateSubMapl一MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfToolbarl.Buttons(11).Value一1ThenMapl.MousePointer—moIdentifyreport.ShowSetl—Mapl.I,ayers(0)SetP—Mapl.ToMapPoint(X,Y)Setrecs—I.SearehShape(P,moPointInPolygon,””)1fNotrecs.EOFThenreport.ListView】.ListItems.clearForEachfldInrecs.FieldsSetnewItem—report.ListVJewl.ListItems.AddnewItem.Text—fld.namenewltem.SubItems(1)一fld.ValueAsStringNextfldEndIfEndSubPrivateSubSpotClick()s$一InputBox$(”请输入您要搜索的货物号码:”,”搜索货物”)DimreesAsMapObjects.RecordsetDimshpAsOhiectDimexpAsStringexp一”货物号码一“’&s$&”。’Setrecs—Mapl.Layers(0).SearchExpression(exp)IfNOtrecs.EOFThen
阅读此文(图):
点击此处在线翻阅