基于Javaweb二手商品交易平台的设计与实现【实用文档】doc_第1页
基于Javaweb二手商品交易平台的设计与实现【实用文档】doc_第2页
基于Javaweb二手商品交易平台的设计与实现【实用文档】doc_第3页
基于Javaweb二手商品交易平台的设计与实现【实用文档】doc_第4页
基于Javaweb二手商品交易平台的设计与实现【实用文档】doc_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

基于Javaweb二手商品交易平台的设计与实现【实用文档】doc文档可直接使用可编辑,欢迎下载

基于Javaweb二手商品交易平台的设计与实现【实用文档】doc文档可直接使用可编辑,欢迎下载本科毕业论文(设计)题目:安徽新华学院二手商品交易平台的设计与实现姓名:学号:专业:计算机科学与技术院系:信息工程学院指导老师:职称学位:讲师/硕士完成时间:2015年5月教务处制安徽新华学院本科毕业论文(设计)独创承诺书本人按照毕业论文(设计)进度计划积极开展实验(调查)研究活动,实事求是地做好实验(调查)记录,所呈交的毕业论文(设计)是我个人在导师指导下进行的研究工作及取得的研究成果。据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的工作已在论文中作了明确说明并表示谢意。毕业论文(设计)作者签名:日期:安徽新华学院二手商品交易平台的设计与实现摘要伴随着电子商务的飞速发展,网上交易日益发挥出其不可替代的优越性。但由于电子商务在校园的应用起步较晚,以及校园电子商务模式应用的不成熟,使高校校园电子商务的发展缓慢。二手商品交易网站是一个服务于在校学生的C2C(CustomtoCustom)的交易网站,通过本网站用户可自由出售和购买商品,为广大学生提供了平等互利、方便快捷的交易空间。系统的主要功能包括:会员管理、类别管理、用户注册、商品发布、商品审核。本系统前台主要使用JSP作为开发语言,后台使用MySQL作为数据库管理系统,开发环境是MyEclipse,服务器采用tomcat,开发出的一个基于Web技术的B/S结构的二手电子产品交易系统。关键词:二手交易网;网上商店;JSP;B/S结构Designandimplementationofsecond—handgoodstradingplatformofAnhuiXinhuaUniversityABSTRACTWiththerapiddevelopmentofe-commerce,onlinetradinghastoplayitsirreplaceableadvantages。Butbecauseofelectroniccommerceinthecampusapplicationstartsrelativelylate,andthecampuselectroniccommerceapplicationisnotmature,sothatthedevelopmentofcampuse-commerceisslow。SecondhandgoodstransactionswebsiteisaservicetothestudentsofC2C(CustomtoCustom)transactionwebsite,throughthewebsite,userscanfreelybuyandsellgoods,providesstudentswithequalityandmutualbenefit,convenientandefficienttradingspaces。Themainfunctionsofthesysteminclude:membershipmanagement,categorymanagement,userregistration,productreleases,productreview。ThefrontofthesystemusingJSPasadevelopmentlanguage,theuseofMySQLasadatabasemanagementsystem,thedevelopmentenvironmentisMyEclipse,serverusingtomcat,developedaWebtechnologybasedonB/Sstructureofsecond—handelectronicproductstradingsystem.Keywords:secondarytradingnetworks;onlinestore;JSP;B/Sstructure目录TOC\o"2—3"\h\z\u\t"标题1,1"135311绪论 .3功能模块详细设计4.3。1用户功能模块的设计与实现用户功能模块主要实现的功能包括用户的注册,用户注册之后可以登录,以及用户可以更新个人信息。下面以介绍其中的用户登录功能为例来说明具体的实现过程。用户登录界面如图6所示。图6用户登录界面当用户输入用户名、密码、验证码并选择身份后,点击登录,系统将表单数据传给处理登录请求的servlet,系统会自动判断用户输入的用户名和密码是否正确,已经身份是否匹配,并反馈给用户相应的信息。下面展示主要的后台代码,此处省略了一些固定定义代码。 if(username.trim().equals("")||username==""){ StringuserMsg="用户名不能为空"; session.setAttribute("userMsg",userMsg); } if(password.trim().equals("")||password==""){ StringpwdMsg="密码不能为空"; session.setAttribute("pwdMsg",pwdMsg); } if(numB.trim().equals("")||numB==""){ StringnumMsg="验证码不能为空"; session.setAttribute("numMsg",numMsg); }elseif(!numB.equals(session.getAttribute("checknumber").toString())){ StringnumMsg="验证码错误"; session.setAttribute("numMsg",numMsg); } if(username.trim().equals("")||username=="" ||password.trim().equals("")||password=="" ||numB.trim().equals("")||numB=="" ||!numB.equals(session.getAttribute("checknumber").toString()) ||type.toString().equals("")||type==""){ response.sendRedirect("login.jsp"); }else{ if(type.equals("管理员")){ tables="t_admin"; }elseif(type.equals("会员")){ tables="t_userinfo"; } Stringsql="select*from"+tables+"whereusername='" +username+"'anduserpwd='"+password+"'"; ResultSetrs=idus.selectSQL(sql); if(rs.next()){ session.setAttribute("username",username); try{ application.setAttribute("userInfo", (String)application.getAttribute("userInfo")+username+"<br/>"); } } else{ System.out.println("dowasnull"); StringloginMsg="用户名或密码错误"; session.setAttribute("loginMsg",loginMsg); response.sendRedirect("login.jsp"); } }catch(SQLExceptione){ StringloginMsg="用户名或密码错误"; session.setAttribute("loginMsg",loginMsg); response.sendRedirect("login.jsp"); } }4.3.2信息浏览模块的设计与实现信息浏览模块主要实现的功能包括,旅游信息的浏览,酒店信息的浏览以及论坛信息的浏览。基本步骤主要为系统通过连接数据库从数据的相关表中读取数据然后存入结果集中,在显示到页面上.下面将通过介绍论坛信息的浏览为例,来说明具体的实现过程。论坛信息浏览界面如图7所示。图7论坛信息浏览界面当用户浏览论坛信息模块时,系统会自动判断当前浏览论坛信息的用户是否为管理员,如果为管理员则系统会自动授予管理员删除权限,即显示删除按钮,如果当前浏览论坛信息的是普通用户,那么系统就只会显示论坛的内容而不会授予普通用户删除权限,防止用户误操作。下面展示后台实现的主要代码,此处省略了HTML界面的代码。<%<% try{ if(session.getAttribute("type").toString().equals("管理员")){ %> <tdwidth="50"> 删除 </td> <% } }catch(Exceptione){ session.setAttribute("type",""); } %> </tr> <% IDUSidus=newIDUS(); ResultSetrs=idus.selectSQL("select*fromb_title"); try{ while(rs.next()){ out.println("<tr>"); out.println("<td><ahref='bbsmsg.jsp?t_title="+rs.getString(1)+"'>"+rs.getString(2)+"</a></td>"); out.println("<td>"+rs.getString(4)+"</td>"); out.println("<td>"+rs.getString(5)+"</td>"); if(session.getAttribute("type").toString().equals("管理员")){ %> <td> <ahref="doDel?id=<%=rs.getString(1)%>">删除</a> </td> <% } out.println("</tr>"); } }catch(Exceptionex){ } %>4。3。3论坛模块的设计与实现论坛模块的功能主要有用户发布帖子和用户回复帖子这两个功能。下面将分别介绍用户发布帖子和用户回复帖子两个功能的具体实现过程。1.帖子发布功能介绍无论是用户还是游客都可以浏览论坛页面,并且都能发布帖子。这样可以不登录也能分享自己的一些旅游经验和其他有用的信息。用户发布帖子的界面如图8所示.图8发帖界面用户通过发帖界面填写帖子的标题和内容,点击发布按钮,系统会自动判断当前登录的用户,同时将所发布的帖子的标题和内容的表单数据以及用户的相关信息传给处理发帖请求的servlet,执行相应的代码,将数据插入到发帖信息表中和回复信息表(实现数据之间的联系)完成帖子发布.下面展示后台代码.publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); PrintWriterout=response.getWriter(); HttpSessionsession=request.getSession(); //获取表单数据 Stringusername=(String)session.getAttribute("username"); Stringtitle=request.getParameter("title"); Stringmsg=request.getParameter("msg"); StringdateTime=request.getParameter("dateTime"); Stringsqlmsg="insertintob_msg(b_username,b_msg,b_time,b_title)values('"+username+"','"+msg+"','"+dateTime+"','"+title+"')"; Stringsqltitle="insertintob_title(b_title,b_msg,b_username,b_time)values('"+title+"','"+msg+"','"+username+"','"+dateTime+"')"; IDUSidus=newIDUS(); IDUSids=newIDUS(); inti=idus.insertSql(sqlmsg); intj=ids.insertSql(sqltitle); if(i>0&&j>0){ out.print("<script>alert('发表成功!');</script>"); response.sendRedirect("bbsindex.jsp"); } out.flush(); out.close(); }}2。帖子回复功能介绍用户不仅能发布帖子,浏览别人的帖子,还可以进行回复,发表自己的看法或者意见,更方便了用户之间的交流。用户回复界面如图9所示。图9用户回复界面用户在回复界面可以看到主贴信息和回复信息,同时也可以回复帖子,用户填写好回复信息后点击提交按钮,系统会自动获取其他相关信息,如回复时间,回复人,回复的哪一个帖子等这些信息同回复的内容一起传给处理回复请求的servlet,执行相应的操作完成回复的功能。下面给出后台代码。publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); PrintWriterout=response.getWriter(); HttpSessionsession=request.getSession(); Stringusername=(String)session.getAttribute("username"); Stringmsg=request.getParameter("msg"); Stringid=request.getParameter("titleid"); Stringtitlename=request.getParameter("titleName"); StringdateTime=request.getParameter("dateTime"); IDUSidus=newIDUS(); Stringsql="insertintob_msg(b_username,b_msg,b_time,b_title)values('"+username+"','"+msg +"','"+dateTime+"','"+titlename+"')"; if(idus.insertSql(sql)>0){ System.out.println("doif"); response.sendRedirect("bbsmsg.jsp?t_title="+id+""); }else{ out.print("<script>alert('发表失败');</script>"); response.sendRedirect("bbsmsg.jsp?t_title="+id+""); } out.flush(); out.close(); }}4.3。4管理员功能模块的设计与实现网站的各类信息主要由系统管理员来管理,管理员的主要功能包括发布旅游信息,发布酒店信息和管理论坛信息。下面以介绍管理论坛信息为例,管理员可以像普通用户一样发布和回复帖子,除此之外管理员还可以删除用户和管理员自己发布的帖子。下面介绍此功能的实现过程。帖子删除界面如图10所示。图10帖子删除界面可以从图10中看到,与普通用户的浏览界面相比,所有帖子右侧都有删除这一选项。当进入论坛页面时,系统自动判断当请登录的用户是否是管理员,上图是以管理员身份进入论坛时的页面。管理员点击删除时,系统将要删除的帖子的ID号传给处理删除请求的servlet,执行删除操作时系统会同时将要删除的帖子中的回复信息一起删除掉。下面给出相应的后头代码。判断用户身份,同时授予删除权限。<%<% try{ if(session.getAttribute("type").toString().equals("管理员")){ %> <tdwidth="50"> 删除 </td> <% } }catch(Exceptione){ session.setAttribute("type",""); } %> </tr> <% IDUSidus=newIDUS(); ResultSetrs=idus.selectSQL("select*fromb_title"); try{ while(rs.next()){ out.println("<tr>"); out.println("<td><ahref='bbsmsg.jsp?t_title="+rs.getString(1)+"'>"+rs.getString(2)+"</a></td>"); out.println("<td>"+rs.getString(4)+"</td>"); out.println("<td>"+rs.getString(5)+"</td>"); if(session.getAttribute("type").toString().equals("管理员")){ %> <td> <ahref="doDel?id=<%=rs.getString(1)%>">删除</a> </td> <% } out.println("</tr>"); } }catch(Exceptionex){ } %>实现删除功能。publicclassdoDelextendsHttpServlet{publicclassdoDelextendsHttpServlet{ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html"); PrintWriterout=response.getWriter(); IDUSid1=newIDUS(); IDUSid2=newIDUS(); IDUSid3=newIDUS(); Stringb_title=""; Stringid=request.getParameter("id"); Stringsql1="deletefromb_titlewhereid='"+id+"'"; Stringsql2="selectb_titlefromb_titlewhereid='"+id+"'"; ResultSetrs=id1.selectSQL(sql2); id2.insertSql(sql1);//删除表b_title中的信息 try{ while(rs.next()){ try{ b_title=rs.getString(1); }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } }catch(SQLExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } Stringsql3="deletefromb_msgwhereb_title='"+b_title+"'"; id3.insertSql(sql3);//删除表b_msg(回复表)中的信息 response.sendRedirect("bbsindex.jsp"); out.flush(); out.close(); }}4.3.5酒店模块的设计与实现酒店模块实现酒店预订的功能,用户不仅可以浏览酒店信息还可以对满意的酒店进行预订。下面介绍酒店预订功能的具体实现.酒店预订界面如图11所示.图11酒店预订界面当用户浏览酒店信息页面时可以看到预订按钮,用户点击预订,系统自动将当前的酒店的ID以及当前登录用户的ID传给处理订单的servlet,执行预订的操作。下面展示后台代码。publicclassdoorderextendsHttpServlet{publicclassdoorderextendsHttpServlet{ publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); PrintWriterout=response.getWriter(); HttpSessionsession=request.getSession(); Stringlid=request.getParameter("lid"); Stringuid=request.getParameter("uid"); Stringsql="insertintoorderlid,uid)values('"+lid+"','"+uid+"')"; IDUSidus=newIDUS(); inti=idus.insertSql(sql); if(i>0){ out.print("<script>alert('酒店预订成功!');</script>"); response.sendRedirect("server.jsp"); } out.flush(); out.close(); }}5旅游网站系统测试5.1注册、登录测试首先测试的是注册功能,用户需要按要求正确填写相关信息,如果填写不对,或者是不填写,则系统会根据具体的情况给出错误提示,所有通过页面进行注册的用户都是普通用户。具体测试情况如表1所示。表1注册测试用例输入输出用户名密码密码确认密码提示电话性别小红123123111女两次密码不一致123123123111女用户名不能为空小红123123111女密码不能为空小红123123111女密码提示不能为空小红123123123女电话不能为空小红123123123111性别不能为空当用户登录时,不仅需要输入正确的用户名和密码,还要选择对应的身份,目前数据库中已有的管理员的用户名为blue,密码为123,当输入的用户名和密码以及身份信息都正确时,会以管理员的身份进入系统.普通用户登录的具体操作与管理员类似。具体测试情况如表2所示。表2登录测试用例(#表示随机数字)输入输出用户名密码验证码身份123####管理员用户名不能为空请输入blue####管理员密码不能为空请输入blue123管理员验证码不能为空blue1231111管理员验证码错误blue123####会员登录失败blue111####管理员密码错误blue123####身份不能为空5.2酒店预订测试当用户进入系统时可以浏览各种信息界面,但是以游客的身份进入酒店页面就不能使用酒店预订的功能,只有在用户登录之后才能使用这个功能,具体测试情况如表3所示。表3酒店预订测试步骤结果不登录进入酒店信息页面点击预订预订出错,请登录5.3信息发布测试无论是游客还是会员都能使用帖子发布这个功能,当用户进入发帖界面进行帖子发布时,标题和内容都必须填写,否则不能发布帖子.具体测试情况如表4所示。表4信息发布测试用例输入输出标题内容杭州三日游...标题不能为空自驾游内容不能为空自助式旅游自助式旅游与...发布成功5.4信息删除测试在本系统中,当以管理员的身份进入系统时,才有删除帖子的权限,如果不是以管理员的身份进入帖子浏览界面,则不会显示删除按钮。具体测试情况如表5所示。表5信息删除测试步骤结果以管理员身份登录系统进入论坛主页点击删除删除成功5.5信息回复测试用户可以查看帖子的内容并对其进行回复,在进行帖子回复时,必须要填写回复的内容,否则无法回复,系统会反馈给用户错误提示信息,具体测试情况如表6所示。表6信息回复测试用例输入输出回复内容回复内容不能为空结语本人通过长时间的努力与付出,最后终于按时完成了基于JavaWeb技术的旅游网站的设计与实现,也按时完成了论文的写作。在实现旅游网站的过程中,本人遇到了很多问题,通过请教别人和查阅相关资料,最后克服了困难解决了问题,顺利完成了毕业设计.并且在这个过程中,学会了怎样面对困难,如何解决问题,达到了锻炼的目的。同时,知识面也得到了拓展,对软件开发的认识和理解也得到了进一步的加深.在完成旅游网站之前,本人对旅游网站系统的认识都停留在表面比较浅显,虽然平时也会编写一些面向对象的小程序,单还是缺乏实战经验.经过此次毕业设计的锻炼,了解到很多有用的知识和经验.开始着手毕业设计时,对旅游网站系统的工实现原理,工作过程和开发的基本框架,没有一个清晰的概念和思路。根据指导老师的推荐,查阅了一些相关书籍和资料,比如《jsp程序设计教程》、《java面向对象编程》、《oracle实用教程》等。在设计的过程中,通过实践操作,进一步了解了jsp网络编程、mvc设计模式的、mysql数据库相关知识、对各种开发工具的配置和操作也熟练了。更正了以前对网站的错误认识。懂得了网站维护对于网站的开发与设计为什么是至关重要的,也了解到数据库和网页直接的数据传递关系。目前为止,旅游网站系统已经基本完成了,但还是存在缺点和不足,达不到企业的要求水平,旅游网站系统总体还有待完善和提高。参考文献[1]郭珍,王国辉.jsp程序设计教程[M].北京:人民邮电出版社,2012[2]方睿等编著.数据库原理及应用[M].北京:机械工业出版社,2010[3]孙卫琴。java面向对象编程[M]。北京:电子工业出版社,2006[4]贾素玲,王强。HTML网页设计[M]。北京:清华大学出版社,2007[5]薛华成。管理信息系统[J].北京:清华大学出版社,2001[6]萨师煊,王珊.数据库系统概论[M]。北京:高等教育出版社,1997[7]郑阿奇主编.Oracle实用教程[M].北京:电子工业出版社,2011致谢首先,我要感谢我的指导老师傻逼老师,本文是在他一点都不指导下经过了多次修改完成的。其次,我还要感谢大学四年来的所有任课老师和所有同学,他们在我大学期间对我的影响和帮助是很大的。最后,我向成都信息工程大学和信息安全工程学院的全体老师表示由衷的感谢。作者简介:姓名:性别:出生日期:民族:E-mail:声明本论文的工作是2015年12月至2016年05月在成都信息工程大学信息安全工程学院完成的.文中除了特别加以标注地方外,不包含他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程大学或其他教学机构的学位或证书而使用过的材料。关于学位论文使用权和研究成果知识产权的说明:本人完全了解成都信息工程大学有关保管使用学位论文的规定,其中包括:(1)学校有权保管并向有关部门递交学位论文的原件与复印件。(2)学校可以采用影印、缩印或其他复制方式保存学位论文。(3)学校可以学术交流为目的复制、赠送和交换学位论文.(4)学校可允许学位论文被查阅或借阅。(5)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息工程大学。特此声明!作者签名:2016年06月15日基于ArcGIS的空间数据共享平台的设计与实现张敏(核工业计算机应用研究所)[摘要]:随着GIS技术的不断发展,各级林业部门对空间数据的需求日益增高。文章以ArcSDE9。1作为空间数据引擎,利用ORACLE10g建立海量空间数据库,通过远程访问ArcIMS9.1的服务获得数据,同时可加载本地数据,以VisualC++6.0为开发平台,以ArcGISEngine9。1为开发组件,开发了基于网络的海量空间数据共享平台,能够为各终端用户提供数据浏览、下载等[关键词]ArcGISEngine空间数据共享VC++设计随着网络技术和GIS的快速发展,人们对空间数据的需求也日益增大,空间数据对天气预报、自然灾害监测、气候变化监测、生态环境监测与评估研究等极具价值。传统的空间数据显示和管理系统与日益增长的海量空间数据已越来越不协调。传统的GIS领域对于三维地物的模拟、浏览方法不但建模复杂、操作繁琐,也难以脱离一些专业软件环境,如何高效率地使用和管理GIS中的空间数据,特别是三维数据,已经成为GIS领域研究的一个趋势。因此,建立基于网络和GIS技术的空间数据共享服务平台,解决好空间数据的共享就成为一项非常必要的工作。1、系统分析整个系统包括以下几个部分:系统采用功能强大、运行高效的Vc++6.0作为前台的开发工具,界面采用多视图自定义窗体,除主视图外均为浮动窗口,方便了人机交互。系统采用完全面向对象的开发方法,使系统易于维护和扩展。(2).系统的核心功能用ArcGISEngine开发包实现,它是一套地图制图组件和开发资源库,可以让开发人员实现动态制图和GIS功能。使用ArcGISEngine开发包,开发人员在为地图创建定制界面时有了前所未有的灵活性。开发人员可以使用多种具有行业标准的交互式开发环境来创建先进的GIS应用程序。ArcGISEngine的功能非常强大,其中的ArcGIS3D分析扩展中提供了一个新的GlobeControl组件,用来以全新的方法对多分辨率全球数据可视化。允许用户对海量三维数据进行可视化和分析,并且速度很快.应用ArcGlobe可以方便地在三维环境中漫游的地球并实时地对海量(数百G)三维栅格,地表和矢量数据集的连续漫游和缩放,用户能非常快地从整个地球的视图“钻”到一个高分辨率的视图近距离的视图,并可查询相关的属性表。(3)数据服务采用ArcIMS提供,ArcIMS可以运行在一个分布式环境中,包含客户端和服务器组件。ArcIMS是一个可伸缩的、基于网络制图和分布式GIS的新一代软件系统,。Web服务器通过ArcIMS连接器与应用服务器连接,应用服务器请求的数据从空间服务器中获得;它处理所有请求的地图数据和相关的信息;用ArcIMS构建的GIS网站允许任意数量的用户通过Internet或Intranet访问和交互操作,能够为浏览器端的客户提供GIS地图、数据和应用等服务。(4)系统采用ArcSDE作为空间数据库引擎,ArcSDE对海量空间数据的存储和多用户并发访问提供了很好的支持,并可通过SDE应用编程接口(SDEAPI)向SDE服务器提出空间数据请求,SDE服务器依据空间对象的特点在本地完成空间数据的搜索,并将搜索结果通过网络向用户的应用程序返回.海量空间数据库采用著名Oracle数据库,它能支持海量数据、多用户的高性能的事务处理;能实施安全性控制和完整性控制;支持分布式数据库和分布处理。通过两者的结合,实现多类型、多尺度、多时态空间数据的集成化管理;解决海量、大范围连续空间数据的高效存储和管理;提供跨平台的网络数据库管理;提供数据安全保障机制。共享系统界面ArcEngine9.1ArcIMS9.1WebServer共享系统界面ArcEngine9.1ArcIMS9.1WebServerArcSDE9.1Oracle10ginternet/intranet客户端(表现层)应用服务层空间数据库服务器2系统设计分析2.1核心模块设计系统核心模块主要为两个类:CLayerManage类和CData类。CLayerManage类主要完成远程、本地数据的加载.CDate类主要完成数据的查询及处理。其定义如下:classCLayerManage{public:ﻩBOOLGetLayerFromIMSImageServer(CStringUrl,CStringServiveName,ILayer**Layer);ﻩBOOLGetLayerFromIMSFeatureServer(CStringUrl,CStringServiveName,ILayer**Layer);ﻩCLayerManage();ﻩvirtual~CLayerManage();public:ﻩBOOLCreateRasterLayer(CStringsFile,ILayer**Layer); BOOLCreateFeatureLayer(CStringsFile,ILayer**Layer);};classCData{public: BOOLGetItemByFileName(CStringsFileName,DB_METADATA*pMeta);ﻩvoidGetDataFromImsByID(CStringsLayerID="0”,CStringsWhere=”1=1");ﻩvoidGetDataFromImsByName(CStringsLayerName,BSTRsWhere);ﻩvoidGetDataFromLayer(BSTRsWhere); CData();ﻩvirtual~CData(); CArray<DB_METADATA,DB_METADATA&〉m_aMetaData;private: voidGetDataFromXml(BSTRpsXML);ﻩvoidXmlParser(BSTRpsXML);};2。2系统配置服务器端配置:服务器为DELL6200,硬盘2T,内存4G,前兆网卡。客户端配置:推荐物理1G内存,显卡推荐128M以上独显,硬盘不低于30G。网络设备配置:一个快速以太网交换机(至少8口)、网线若干,宽带接入。软件配置:Windows2000或以上、ArcGISEngineRuntime、DirectX8。1或以上。2.3系统的功能模块实验系统的功能包括:数据加载,包括远程数据和本地数据;空间数据的浏览、查询和分析功能,三维漫游;GIS的基本功能:地图的放大、缩小、漫游、图层操作等;以及在此基础上实现的空间/属性信息双向查询;覆盖全国数据影响的元数据查看及下载等,实现空间信息的共享。具体如图3所示。空间信息共享平台空间信息共享平台远程数据加载本地数据加载图层操作数据查询数据浏览数据下载添加图层删除图层图层属性空间数据查询属性数据查询三维影像漫游多分辨率数据浏览漫游元数据信息查看空间位置查询遥感影像下载元数据下载3系统建立3.1数据的搜集与整理其内容主要包括确定数据来源、数据分界、数据质量和专题数据的组织结构等。这一步对于空间数据库的权威性、可靠性至关重要,应予以高度重视。本系统所共享的数据包括7层不同分辨率的栅格或矢量数据。分别为:全球NOAA影像,国界图,中国区划图,省界,地区界,县界,部分地区快鸟及DEM数据,数据总量达600G左右。3。2数宇化对于基础数据采用扫描并矢量化的方法,扫描后会产生一定的偏差,须经过ERDAS等图形处理软件进行几何变换以及坐标、投影转换等调整,以符合系统要求。3。3系统开发3。3.1加入控件和导入库本实验系统使用了ArcGISEngine组件库中的ToolbarControl、TOCControl和GlobeControl等现有的组件,来简化程序的代码编写,提高开发效率.ToolbarControl控件可以加入放大、缩小、漫游等地图操作工具。3维可视化的控件GlobeControl则具有显示三维文档、图层数据和对鼠标操作作出响应的功能。TOCControl实现对图层的控制.在VC++中,通过组件库和控件结合来开发三维分析程序时,使用AddToProject加入控件,同时需要导入相应的类型库.利用#import伪指令引入类型库,将import指令写在StdAfx.h文件中,如下所示:#import"c:\\ProgramFiles\\ArcGIS\\COM\\esriSystem。olb”raw_interfaces_onlyraw_native_typesno_namespacenamed_guidsexclude("OLE_COLOR","OLE_HANDLE”)#import"c:\\ProgramFiles\\ArcGIS\\COM\\esriGeometry.olb"raw_interfaces_onlyraw_native_typesno_namespacenamed_guidsexclude("OLE_COLOR","OLE_HANDLE")#import"c:\\ProgramFiles\\ArcGIS\\COM\\esriGeoDatabase。olb"aw_interfaces_onlyraw_native_typesno_namespacenamed_guidsexclude("OLE_COLOR","OLE_HANDLE")#import”c:\\ProgramFiles\\ArcGIS\\COM\\esriGeoDatabase.olb”aw_interfaces_onlyraw_native_typesno_namespd_guidsexclude(”OLE_COLOR",”OLE_HANDLE”)#import"c:\\ProgramFiles\\ArcGIS\\COM\\esriCarto。olb"raw_interfaces_onlyraw_native_typesno_namespacenamed_guidsexclude("OLE_COLOR”,"OLE_HANDLE")#import"c:\\ProgramFiles\\ArcGIS\\COM\\esri3DAnalyst.olb”raw_interfaces_onlyraw_native_typesno_namespacenamed_guidsexclude("OLE_COLOR”,”OLE_HANDLE”)3.3。2界面开发通过加载ArcGISEngine组件库中的ToolbarControl、TOCControl和GlobeControl控件,再加上自定义的listctl,treectl,tabctrl等完成相关界面的开发。左侧视图为查询条件及图层控制,图层控制主要由ToolbarControl控件完成来实现对地图的打开、浏览等操作;底部视图显示查询结果;右侧为主视图,主视图上方TocControl控件主要控制专题地图的分层显示与管理,GlobeControl是本系统的核心控件,实现对专题地图的三维浏览、漫游以及控制显示。如图四所示:以下代码实现GlobeControl和ToolbarControl相关联。LPUNKNOWNpUnk=m_ctlGlobe.GetControlUnknown();ﻩLPDISPATCHpDisp=0; pUnk->QueryInterface(IID_IDispatch,(void**)&pDisp); m_ctlGlobeTool.SetBuddyControl(pDisp);ﻩpDisp->Release();3.3。3数据加载通过远程访问已建立的ArcIMS服务来获得所需数据,用户可根据不同的条件,如卫星类型、数据的获得时间、云层覆盖度、经纬度、行政区划、分幅等条件从服务器获得相应的元数据。(1)加载地图数据:IIMSServiceDescriptionPtrpImsSvrDesc;ﻩHRESULThr=pImsSvrDesc.CreateInstance(CLSID_IMSServiceName);ﻩpImsSvrDesc—〉put_URL((_bstr_t)Url);ﻩpImsSvrDesc->put_Name((_bstr_t)ServiveName);IIMSMapLayerPtrpImsMap;ﻩhr=pImsMap.CreateInstance(CLSID_IMSMapLayer);ﻩpImsSvrDesc-〉put_ServiceType((acServiceType)acMapService); hr=pImsMap-〉ConnectToService(pImsSvrDesc);ILayerPtrlp=pImsMap.Detach();pg->AddLayerType(lp,esriGlobeLayerTypeDraped,FALSE);(2)获得元数据 IQueryFilterPtrpQf(CLSID_QueryFilter); IFeatureCursorPtrpFCur; IFeatureClassPtrpFLCls;ﻩpView-〉m_pLayer-〉get_FeatureClass(&pFLCls);ﻩpQf->put_WhereClause((_bstr_t)sWhere); pFLCls->Search(pQf,FALSE,&pFCur);图四数据加载3.3.4数据查询根据空间对象的某些属性信息,查找符合一定条件的空间对象在实际应用开发过程中是一种很常见的应用。系统可以由属性查空间对象,也可以由空间对象查属性,因实现方法类似,在此时说明由属性来查找空间对象的位置信息。首先要使用ArcGISEngine的查询过滤器QueryFilter,通过WhereClause属性来设置查询的条件,查询条件可以是较复杂的组合SQL查询条件,对目标要素类使用该查询条件即可获得符合条件的要素集。IQueryFilterPtrpQf(CLSID_QueryFilter);ﻩIFeatureCursorPtrpFCur; IFeatureClassPtrpFLCls; m_pLayer->get_FeatureClass(&pFLCls);ﻩpQf—>put_WhereClause((_bstr_t)sWhere); pFLCls-〉Search(pQf,FALSE,&pFCur);ﻩIFeaturePtrpFt; if(pFCur)ﻩ{ pFCur—>NextFeature(&pFt);ﻩ}ﻩIScenePtrpSence;ﻩthis-〉m_pGlobeDisplay-〉get_Scene(&pSence); pSence-〉ClearSelection();pSence—>SelectFeature(m_pLayer,pFt);图五数据查询3.3。5三维漫游系统可加载DEM(数字高程模型)数据,进行三维模型的缩放、旋转、飞行等操作,来查看实际地形特征空间分布,给人更真实的视觉感受。图六DEM三维图像3.3.6元数据查看及下载当用户选择查询结果集中某一行时查看或下载相关的元数据,当用户点击元数据列时,用户可查看元数据的详细属性:如下图:图七元数据详细属性当用户点击真实数据列时,用户可查看与元数据相关的真实影像:如下图:图八元数据真实影像当用户点击数据下载列时,用户可下载此元数据信息:如下图:图九元数据下载4结论与展望

温馨提示

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

评论

0/150

提交评论