《毕业论文(设计)基于ArcEngine 的空间数据管理系统.doc》由会员分享,可在线阅读,更多相关《毕业论文(设计)基于ArcEngine 的空间数据管理系统.doc(7页珍藏版)》请在三一办公上搜索。
1、基于ArcEngine的空间数据管理系统王雷1,孔繁宇2,朱世斌3(1.黑龙江工程学院测绘工程系,哈尔滨 150050; 2.哈尔滨市信息产业局,哈尔滨 150028;3.安徽省萧县公路局,萧县 235200)电话:0451-88028725 13836120389 wang_mailbox01摘要:空间数据是GIS的核心,如何有效的管理空间数据就成了一个重要的问题。本文研究一种在空间数据库技术和组件GIS 技术等相关技术支持下,以Oracle为空间数据库存储平台,ArcSDE为空间数据库引擎,基于C/S 架构的GIS空间数据管理系统。从而实现GIS空间数据的有效组织、安全存储、分布式服务,为
2、GIS空间数据组织和管理提供一个有效的解决方案。关键词:ArcGIS Engine;GIS;空间数据;管理;数据库Management System of Spatial DataBased on ArcEngineWang Lei1, Kong Fanyu2, Zhu Shibin3(1.Heilongjiang Institute of Technology Surveying and Mapping Department, Harbin, 150050;2. Harbin Information Industries Bureau, Harbin ,150028;3. Xiaoxian
3、Road Bureau of Anhui Province, Xiaoxian, 235200)Abstract:The spatial data is the essential part of GIS. How to manage the spatial data efficiently becomes a big problem. In this paper, it studies a methodology to construct a C/S-based structure for GIS data management system, which is under the supp
4、ort of the spatial database and ComGIS technologies, using Oracle as data storing platform and ArcSDE as spatial data engine. Realize the effective organization, secure storage, and distribute service of GIS spatial data. At last, it provides a valid solution to the organization and management of GI
5、S spatial data.Key words: ArcGIS Engine;GIS;Spatial Data;Management;DataBase1 引言信息化一直是一个单位或部门提高工作效率、加强管理力度的有效方法,长期以来由于思想观念的陈旧,导致许多数据生产单位信息化过程缓慢,从而难见成效。为了尽快改变这种局面,建成具备多源数据获取、处理、存储、管理、数据分发等完整功能的新型空间数据管理系统已成当务之急。采用GIS技术可以逐步改变传统的手工作业方式和纸介质的数据保存方式,实现数据的动态更新维护,提高工作效率和数据的现势性,从而建立整个地区或城市级的基础地理空间数据库,更好地服务于经济
6、建设。2系统的建设目标系统按照统一的数据结构、统一的标准体系、统一的管理模式的原则,建立一个先进的、具有前瞻性的系统管理模式和数据库结构模式。最终构建城市的GIS数据安全共享平台,提供完善、优质和高效的服务,加快城市的信息化建设、提高城市的信息化建设水平。实现数据的动态更新维护,提高工作效率和数据的现势性,建立整个地区或城市级的基础地理空间数据库,更好地服务于经济建设。3 系统平台的选择ArcGIS Engine是为开发应用提供的完整的嵌入式GIS组件库,ArcGIS Engine包括开发包(Develop Kit)和运行包(Runtime)两部分,ArcGIS Engine是美国ESRI公司
7、ArcGIS 9.0推出的继承了ArcObject全部功能的一个模块。ArcGIS Engine具有ArcGIS 平台的所有优点,如开发平台的先进性、可扩展性和兼容性等都具有得天独厚的优势。具体来说,ArcGIS Engine具有以下几个关键特征:标准的GIS框架;有效的License配置方案;跨平台Windows、Unix等;跨语言Com、.Net、C+ +、Java等;ArcGIS的扩展功能;开发控件。鉴于ArcGIS Engine具有如此多的优势,既满足我们在系统开发时考虑客户的需求,又使我们的开发工作拥有很大的灵活性和扩展性,所以选择ArcGIS Engine是必然的、合理的。4 系统
8、的总体设计通过对空间数据管理业务需求的研究和ArcGIS Engine的技术特点的分析,系统结构设计如图1,采用三层结构模式:1.由存储在数据库中的数据和基于文件的数据以及ArcSDE空间数据引擎组成的数据层;2.由ArcGIS Engine开发包和VisualStudio. NET开发环境组成的逻辑层;3.由集成到空间数据管理系统的数据转换模块、数据更新模块、数据入库模块等组成表现层。5 系统实现5.1空间数据管理系统主界面用户界面是保证系统完全被利用的一个重要因素,它影响到用户应用系统,进而影响到系统功能的发挥,本系统的界面设计充分考虑系统使用者,采用通用菜单、工具条和实时提示等技术,使软
9、件的系统功能高度集成,操作简单,并提供友好的用户界面。系统界面如图3所示。5.2系统部分功能的实现系统以微软的VisualStudio. NET为开发工具,ArcGIS Engine为GIS支撑平台。数据库采用Oracle10g和ArcSDE。5.2.1地图文档的加载此项功能主要用于从指定路径读入MXD、MXT、PMF文件,并在MapControl控件中显示地图信息。public static void OpenDocMap(AxMapControl pMapControl) OpenFileDialog dlg=new OpenFileDialog(); dlg.Filter=ArcMap
10、Document(*.mxd,*.mxt,*.pmf)|*.mxd;*.mxt;*.pmf; dlg.Title=打开地图文档; string FilePath=; if(dlg.ShowDialog()=DialogResult.OK) FilePath=dlg.FileName; if(FilePath!=null & FilePath.Length 0) if(pMapControl.CheckMxFile(FilePath) pMapControl.LoadMxFile(FilePath,Type.Missing,Type.Missing); 5.2.2加载SDE数据此项功能主要用于通
11、过数据库的连接参数打开SDE的工作空间,从而向MapControl中加载数据库中的数据层。public IWorkspace openSDEWorkspace(string Server, string Instance, string User, string Password, string Database, string version) try return null; IWorkspace ws = null; IPropertySet pPropSet = new PropertySetClass(); IWorkspaceFactory pSdeFact = new SdeWo
12、rkspaceFactoryClass(); pPropSet.SetProperty(SERVER, Server); pPropSet.SetProperty(INSTANCE, Instance); pPropSet.SetProperty(DATABASE, Database); pPropSet.SetProperty(USER, User); pPropSet.SetProperty(PASSWORD, Password); pPropSet.SetProperty(VERSION, version); ws = pSdeFact.Open(pPropSet, 0); return
13、 ws; catch(System.Exception err) 5.2.3数据查询GIS对空间及属性数据的查询检索,是GIS最早所具备的功能之一,因此也是GIS最为成熟的功能。在系统应用中开了Identify、点状、线状、面状、查询等命令按钮进行空间查询和SQL语法编辑器进行属性查询。(1)属性查询IFeatureLayer pFeatLyr = null; this.btnLookSelection.Enabled = false;if(this.pMapControl.LayerCount0) ILayer pLayer = this.pMapControl.Map.get_Layer(
14、this.ComboLyr.SelectedIndex); pFeatLyr = pLayer as IFeatureLayer;if(pFeatLyr=null) return;IFeatureSelection pFeatSelection = pFeatLyr as IFeatureSelection;IQueryFilter pQueryFilter = new QueryFilterClass();pQueryFilter.WhereClause = this.txtWhere.Text.ToString().Trim();. pFeatSelection.SelectFeature
15、s(pQueryFilter,esriSelectionResultEnum.esriSelectionResultAnd,false); break;this.Text = 共发现了(+pFeatSelection.SelectionSet.Count+)个地物;if(pFeatSelection.SelectionSet.Count !=0) this.btnLookSelection.Enabled = true;else this.btnLookSelection.Enabled = false;this.pMapControl.Extent = clsCommand.GetLyrSe
16、lEnve(pFeatLyr as ILayer);IActiveView pAV = this.pMapControl.ActiveView;pAV.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection,null,null);(2) 空间查询/定义选择集IFeatureSelection pFeatSelection;/定义并设置SaptialFilterISpatialFilter pSpatialFilter =new SpatialFilterClass();pSpatialFilter.Geometry = FrmSpaceQue
17、ry.m_pSearchGeometry;pSpatialFilter.SpatialRel = esriSpatialRelEnum.;/定义查询方式/定义查找地物数量int FeatCount = 0;for(int i=0;ithis.chkLstBoxLayer.CheckedItems.Count;i+) featureLayerClass pfeatureLayerClass = this.chkLstBoxLayer.CheckedItemsi as featureLayerClass; if(pfeatureLayerClass.Layer is IFeatureLayer)
18、pFeatSelection = pfeatureLayerClass.Layer as IFeatureSelection; pFeatSelection.SelectFeatures(pSpatialFilter as IQueryFilter,esriSelectionResultEnum.esriSelectionResultNew,false); FeatCount = FeatCount + pFeatSelection.SelectionSet.Count; 6 结束语综上所述,基于ArcGIS Engine和Visual Studio. NET框架建立了空间数据管理系统,充分利
19、用了ArcGIS Engine强大的空间分析、空间数据库管理能力和VisualStudio. NET的快速可视化编程优势,实现了对空间数据的一体化管理,系统具有强大的属性查询统计、数据更新、空间检索、空间分析、制图输出等功能,为空间数据管理提供了强大的工具。参考文献:1陈述彭,鲁学军,周成虎地理信息系统导论M北京:科学出版社2李满春,等GIS设计与实现M北京:科学出版社3陈健飞,等地理信息系统导论M北京:科学出版社4 ESRIDelivering Custom GIS Applications With ArcGIS EngineMUSA:Environment Systems Researc
20、h Institute Inc,20045 ArcGIS Engine Developers Guide MUSA:Environment Systems Research Institute Inc,2004:7-7更多测绘论文请登录测绘网论文频道查询:http:/ Editors note: Judson Jones is a meteorologist, journalist and photographer. He has freelanced with CNN for four years, covering severe weather from tornadoes to typh
21、oons. Follow him on Twitter: jnjonesjr (CNN) - I will always wonder what it was like to huddle around a shortwave radio and through the crackling static from space hear the faint beeps of the worlds first satellite - Sputnik. I also missed watching Neil Armstrong step foot on the moon and the first
22、space shuttle take off for the stars. Those events were way before my time.As a kid, I was fascinated with what goes on in the sky, and when NASA pulled the plug on the shuttle program I was heartbroken. Yet the privatized space race has renewed my childhood dreams to reach for the stars.As a meteor
23、ologist, Ive still seen many important weather and space events, but right now, if you were sitting next to me, youd hear my foot tapping rapidly under my desk. Im anxious for the next one: a space capsule hanging from a crane in the New Mexico desert.Its like the set for a George Lucas movie floati
24、ng to the edge of space.You and I will have the chance to watch a man take a leap into an unimaginable free fall from the edge of space - live.The (lack of) air up there Watch man jump from 96,000 feet Tuesday, I sat at work glued to the live stream of the Red Bull Stratos Mission. I watched the bal
25、loons positioned at different altitudes in the sky to test the winds, knowing that if they would just line up in a vertical straight line we would be go for launch.I feel this mission was created for me because I am also a journalist and a photographer, but above all I live for taking a leap of fait
26、h - the feeling of pushing the envelope into uncharted territory.The guy who is going to do this, Felix Baumgartner, must have that same feeling, at a level I will never reach. However, it did not stop me from feeling his pain when a gust of swirling wind kicked up and twisted the partially filled b
27、alloon that would take him to the upper end of our atmosphere. As soon as the 40-acre balloon, with skin no thicker than a dry cleaning bag, scraped the ground I knew it was over.How claustrophobia almost grounded supersonic skydiverWith each twist, you could see the wrinkles of disappointment on th
28、e face of the current record holder and capcom (capsule communications), Col. Joe Kittinger. He hung his head low in mission control as he told Baumgartner the disappointing news: Mission aborted.The supersonic descent could happen as early as Sunday.The weather plays an important role in this missi
29、on. Starting at the ground, conditions have to be very calm - winds less than 2 mph, with no precipitation or humidity and limited cloud cover. The balloon, with capsule attached, will move through the lower level of the atmosphere (the troposphere) where our day-to-day weather lives. It will climb
30、higher than the tip of Mount Everest (5.5 miles/8.85 kilometers), drifting even higher than the cruising altitude of commercial airliners (5.6 miles/9.17 kilometers) and into the stratosphere. As he crosses the boundary layer (called the tropopause), he can expect a lot of turbulence.The balloon wil
31、l slowly drift to the edge of space at 120,000 feet (22.7 miles/36.53 kilometers). Here, Fearless Felix will unclip. He will roll back the door.Then, I would assume, he will slowly step out onto something resembling an Olympic diving platform.Below, the Earth becomes the concrete bottom of a swimmin
32、g pool that he wants to land on, but not too hard. Still, hell be traveling fast, so despite the distance, it will not be like diving into the deep end of a pool. It will be like he is diving into the shallow end.Skydiver preps for the big jumpWhen he jumps, he is expected to reach the speed of soun
33、d - 690 mph (1,110 kph) - in less than 40 seconds. Like hitting the top of the water, he will begin to slow as he approaches the more dense air closer to Earth. But this will not be enough to stop him completely.If he goes too fast or spins out of control, he has a stabilization parachute that can b
34、e deployed to slow him down. His team hopes its not needed. Instead, he plans to deploy his 270-square-foot (25-square-meter) main chute at an altitude of around 5,000 feet (1,524 meters).In order to deploy this chute successfully, he will have to slow to 172 mph (277 kph). He will have a reserve pa
35、rachute that will open automatically if he loses consciousness at mach speeds.Even if everything goes as planned, it wont. Baumgartner still will free fall at a speed that would cause you and me to pass out, and no parachute is guaranteed to work higher than 25,000 feet (7,620 meters).It might not b
36、e the moon, but Kittinger free fell from 102,800 feet in 1960 - at the dawn of an infamous space race that captured the hearts of many. Baumgartner will attempt to break that record, a feat that boggles the mind. This is one of those monumental moments I will always remember, because there is no way Id miss this.