基于WEB的多因素旅游线路选择系统毕业论文.doc

上传人:文库蛋蛋多 文档编号:3939410 上传时间:2023-03-28 格式:DOC 页数:25 大小:3.75MB
返回 下载 相关 举报
基于WEB的多因素旅游线路选择系统毕业论文.doc_第1页
第1页 / 共25页
基于WEB的多因素旅游线路选择系统毕业论文.doc_第2页
第2页 / 共25页
基于WEB的多因素旅游线路选择系统毕业论文.doc_第3页
第3页 / 共25页
基于WEB的多因素旅游线路选择系统毕业论文.doc_第4页
第4页 / 共25页
基于WEB的多因素旅游线路选择系统毕业论文.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《基于WEB的多因素旅游线路选择系统毕业论文.doc》由会员分享,可在线阅读,更多相关《基于WEB的多因素旅游线路选择系统毕业论文.doc(25页珍藏版)》请在三一办公上搜索。

1、摘要随着交通系统的建设,我国的旅游事业和互联网发展和普及十分迅速。越来越多的人都希望能在互联网有一个集景点介绍、旅游路线决策、交通时间和交通费用于一体的旅游信息系统。本系统主要分为两个部分,一部分是路径决策的算法,另一部分就是实现在WEB上结合路径决策算法使用户能够决策出最佳的线路和地图浏览的基本功能。本文着重从开发基于WEB的多因素旅游路线决策系统的非算法部分入手,阐述GIS在互联网上的运用。本文主要阐述如何利用MapXtreme地图服务器的Application Wizard功能发布一个基本应用程序框架,并对其进行深入的剖析,了解到基本工作原理和工作流程,再利用ASP技术结合MapXtre

2、me提供的基本函数库和ACCESS数据库进行二次开发。实现地图基本操作,对象查询和介绍等功能。并实现与路径决策算法结合,实现路径决策,选择,显示。关键词:GIS,MapInfo,MapXtreme,ASP,旅游路线决策 AbstractOur countrys tourism and internet has a great development as the construction of the traffic system goes, there is a requirement that more and more people want to make their trip eas

3、ier through internet. So we need a mature system that contains introductions of tourist track, cost and time of the trip . The context is about MTRDS (Multi-factor tourism routing decision-making system) which bases on WEB. This system contains two parts ,one is the function of Routing Decision-Maki

4、ng, the other part is showing the map on the Web and the implement of the basic map operation. It tells how to use Application Wizard of MapXtreme MAP server to publish a fundamental frame, and use ASP to redevelop with ACCESS and the function library provided by MapXtreme .Finally it can accomplish

5、 basic map operation, object query and introduction. And work with the function of Routing Decision-Making to realize Decision, Selection of the routes and Display on the map. Keyword: GIS,MapInfo,MapXtreme,ASP,Decision-Making 目录第一章 前言31.1开发背景31.2系统概述3第二章 系统分析32.1需求分析及开发目标32.2系统功能分析42.2.1福建省地图查看与漫游4

6、2.2.2景点与城县信息查询42.2.3最佳路径决策,选择与显示42.3系统功能结构图5第三章 系统开发技术简介53.1 GIS技术53.2 ASP技术63.3系统软硬件条件63.4开发软件介绍63.4.1 MapInfo Professional 7.863.4.2 MapXtreme73.5开发环境工作原理83.5.1 ASP83.5.2 MapXtreme8第四章 系统设计与实现94.1数据库设计94.2界面设计104.3系统实现114.3.1加入MapX对象114.3.2地图的基本操作124.3.3地图对象查询154.3.4地图信息查看164.3.5与算法结合实现路径决策与显示184.

7、3.6最佳路径算法实现21第五章 总结和展望22参考文献23第一章 前言1.1开发背景随着我国经济的发展,综合国力的增强,人民生活水平的提高,老百姓不像以前一味的辛苦的工作,努力的攒钱而不注重精神生活上的享受,而是更加注重工作、生活的质量。俗语说“读万卷书,行万里路”,越来越多的人在工作之余选择了旅游去扩大自己的知识面,放松心情,享受人生,感受不同民族,不同国家的风土人情。这就造成了如今“五一”,“十一”旅游黄金周各大旅行社爆满的情况,每个游客的实际情况差异性很大,不可能做到使每个游客100的旅途开心愉快,在这样的情况下,人们需要有一个工具能够帮助他们决策一条最佳的旅游线路,同时又可以考虑时间

8、,金钱等方面的花费,因此我们推出了基于WEB的多因素旅游线路选择系统,使用户通过浏览器实现对旅游地图的放大、缩小,查询旅游城市、景点信息,选择适合自身条件的旅游线路,让每个游客旅途舒心、放心、开心。1.2系统概述基于WEB的多因素旅游线路选择系统是一个通过浏览器向用户发布旅游信息和旅游交通的系统。旅游信息包括了一些著名景点的文字,图片,视频等形式的介绍。旅游交通是为游客从起始地中转站到达旅游目的地的以及在旅游目的地各处旅游活动而提供的交通设施及服务。包括两部分:一是线路选择,指从起始点途经中转地到达旅游目的地的交通,即城市之间具体线路的选择,包括了满足条件的所有的路线。路线信息包含了道路信息(

9、国道,省道,铁路,高速公路),交通工具(火车,汽车)的选择。二是根据用户对旅游因素(如花费时间,耗时)的选择,真正体现本系统多因素的条件。从线路选择出的线路中挑出一条最佳线路给用户。正如上所述,该系统是一个集介绍、旅游路线决策、交通时间和交通费用于一体的旅游信息平台。在系统中,用户可以在一幅全省(福建省)地图上看到所有的名胜古迹、自然风光的所在地,用户可以通过鼠标实现对地图的放大、缩小、拖动操作。当用户放大某个地点时,显示当地的风光名称,包括有风光图片、文字介绍和视频短片介绍。若系统与电子商务系统相连,用户还可以直接在酒店预定房间或订机票,所以还有很大潜在的商机。在旅游服务中辅以Mapinfo

10、的地图信息技术,无疑将对各地游客尤其是那些对福建省旅游情况不甚熟悉的游客产生巨大的吸引力。第二章 系统分析2.1需求分析及开发目标本系统是基于B/S模式开发的,向用户提供旅游景点信息,并对线路进行决策的系统。在对需求的分析下确定本系统的目标如下:建立动态页面,使世界各地的用户通过计算机浏览器可以查询到有关旅游的各项信息,包括:景点、交通等信息;设计并建立旅游信息的数据库系统。该数据库包括:景点信息表、交通信息表等。本系统最主要实现的是多因素旅游路线的决策,所以在多因素上我们暂时考虑时间花费,经济花费,和时价比三个因素,在系统设计过程和数据库设计过程中,采用相对独立模块进行设计,为以后的系统的扩

11、充做准备!我们的目标就是建立一个基于WEB的福建省旅游信息的路线决策系统,使其能够实现旅游城市间的交通线路的最佳路径决策。2.2系统功能分析2.2.1福建省地图查看与漫游功能描述:用户能通过浏览器对数字地图进行放大,缩小,居中以及数字地图的图层进行隐藏和显示操作。使用户能够详细了解地图。对本系统的所使用的交通信息,城县信息能有所了解。实现思路:采用Mapinfo软件将福建省地图数字化,利用MapXtreme地图服务器的Application Wizard功能发布一个基本程序框架,利用ASP技术结合MapXtreme提供的函数库进行二次开发,既可实现基本操作功能。2.2.2景点与城县信息查询功能

12、描述:用户通过点击地图上的景点或城县,或者在查询输入框中输入想要查询的景点或城县,然后提交,系统把景点或城县居中后,点击该景点或城县,系统自动弹出一个页面,介绍该景点或城县的信息,并且搭配该景点的视频介绍,使用户可以方便的了解到该景点或城县的咨询,为旅游路线的选择作必要的了解。实现思路:通过地图工具获取景点或城县的名称,在已经建好的ACCESS数据库中查询,并显示在页面上。视频文件的绑定也通过数据库实现。2.2.3最佳路径决策,选择与显示功能描述:用户在页面路径决策输入框中分别输入起点,途经点,终点。其中途经点可以省略,起点和终点为必填项。用户可以选择按“时间花费”,“经济花费”,“时价比例”

13、三个因素作为路径决策的条件(暂时只提供这三个条件,以后根据需要可以扩充),默认为时间花费作为决策条件。点击提交以后,系统根据条件,自动决策出五条路线(其实决策出的路线不止五条,为了考虑页面的美观因素以及实际使用情况,五条就基本够用了)。用户根据自己的喜好,可以在五条路线中选取一条路线,然后提交,系统将把该路线经过的道路名称按顺序显示出来,并在地图上显示该条路线。实现思路:起点,途经点,终点以及决策条件通过表单提交到函数页面,调用路径决策算法返回决策结果。把结果直接输出到页面供用户选择。由于在决策过程中使用的是城市的编号,在实际显示的时候还必须和数据库建立关联,给出实际的名称。在用户选择完要显示

14、的路线以后,通过交通信息表查询两个城市间的路径,新建最佳路径图层并显示在地图上隐藏交通信息图层使结果更明确。2.3系统功能结构图地图的放大用户挑路线在图中显示基于WEB多因素旅游线路决策系统电子地图线路决策地图的缩小地图的拖动图层信息的叠加景点在地图上的定位景点的文字图片介绍获得起点中转站及终点决策出所有可行的线路推荐出最佳路线用户选择决策因素简单系统帮助第三章 系统开发技术简介3.1 GIS技术地理信息系统(Geographical Information System,简称GIS)是在计算机硬件、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、存储、运算

15、、分析和可视化表达的信息处理与管理系统。GIS处理、管理的对象是多种地理空间实体数据及其关系,包括空间定位数据、图形数据、遥感图像数据、属性数据等,用于分析和处理在一定地理区域内分布的各种现象和过程,解决复杂的规划、决策和管理问题。在GIS支持下,提供给使用者的信息产品不仅仅是简单的文字和数据(称为属性信息),而且还有一幅幅空间矢量图形或栅格图像(称为空间信息)。地理信息系统,同别的应用软件一样,具备对这些带有空间属性的对象进行输入、输出、编辑、修改、查询之类的基本功能。地理信息系统中空间数据是分层的,各个分层单独保存,可单独访问,方便修改和管理。可以把许多层叠加起来分析问题,研究解决方案。地

16、理信息系统可以使用各种坐标系统,可以自定义独立的坐标系统,也可以采用全球统一的坐标系统。采用全球统一的经纬网系统来标定对象的位置便于相互拼接,方便数据的相互转换。3.2 ASP技术Active Server Pages (ASP) 是服务器端脚本编写环境,是由Server端脚本、对象以及组件拓展过的标准主页使用它可以创建和运行动态、交互的Web 页和基于 Web 的功能强大的应用程序。由于ASP的逻辑在Web服务器上运行,用ASP创建的应用可以被跨不同平台运行的多种Web浏览器访问。一个ASP页面由一个HTML文档和内置的服务器端脚本逻辑组成。脚本逻辑(如VBScript或JScript)在W

17、eb服务器中执行,然后从文档中舍去,只有HTML被发送到浏览器。3.3系统软硬件条件开发本系统硬件环境如下:CPU: Intel 赛扬 2.4GHz内存:512 MB显示:1024x768,32位色开发本系统所需的软件环境如下:Microsoft Windows XP SP2MapInfo Professional 7.8 SCPMapXtreme 3.0Microsoft Internet Information Server 6.0Microsoft Office Access 2000Microsoft Internet Explorer 6.03.4开发软件介绍3.4.1 MapInf

18、o Professional 7.8Mapinfo是美国Mapinfo公司的产品。该公司始终致力于为用户提供先进的数据可视化、信息地图化技术,并将这些技术与主流业务系统集成,提供完整地解决方案。Mapinfo吸取了传统GIS系统的精华,并借助于于计算机技术的发展,及时地将GIS的概念从大中型计算机的专用工作站引入到普通PC上,开创了一种崭新的地理信息系统模式,即桌面地图信息系统。Mapinfo软件充分体现了小型、灵活、简单的特点。在用户界面上,Mapinfo利用Windows的功能,提供了符号化的菜单和开发工具,使用户易于掌握。在数据库接口上,Mapinfo可以直接收Microsoft的Acc

19、ess格式数据,而无需中间加工。在数据的可视化方面,Mapinfo具有很大的灵活性,每一张地图都可以用不同层次的图叠加而成,并且通过窗口的缩放功能观察整体和局部的细节。除了一般的查询、显示、绘图功能外,Mapinfo软件还具备空间分析功能,如叠加分析、缓冲区分析、数值及统计计算等。此外,利用地理信息系统的空间分析和统计运算功能作为决策支持系统的平台,能对已有空间和属性信息进行加工处理,得出科学的结论,避免因人而异的主观随意性,有利于科学决策。3.4.2 MapXtreme美国著名GIS软件厂商-MapInfo公司产品。MapXtreme是因特网、企业外部网和内部网的地图服务器。它可以使公司实现

20、数据的地图可视化,发现在电子数据表和报告中发现不了的新的关系和趋势。领导公司利用地图来决定市场和销售地区,管理和保护固定资产,并且更加有效率的配送产品。MapXtreme提供了强大的功能来满足这些需求。MapXtreme提供Microsofts Active Server Pages (ASP)支持,包含应用程序向导以便于开发和投入运行。MapXtreme的主要功能:通过MapXtreme,用户可以在Internet/Intranet WWW 上发布基于电子地图的应用系统。所有的最终用户只需在自己的机器上安装浏览器(如 Microsoft Internet Explorer 或Netscape

21、 )即可访问存放在服务器端的空间数据,用户可以很方便地对地图进行放大、缩小、漫游、查询、统计等操作。MapXtreme地图引擎包括MapX,MapXSever,MapXBroker三个主部件。每一个部件有其特有的对象,属性和实现功能的方法。而MapXCourier可以实现应用程序和地图引擎的沟通。(1) MapXMapXtreme功能的核心是Mapx,它是Mapinfo公司在地图方面的一个OCX控件。MapXtreme能够通过网络开发环境访问MapX OCX。应用程序可以通过一系列静态和动态页在用户浏览器和应用程序服务器之间传递信息。(2) MapXServer:MapXServer是MapX

22、 OCX的包装。MapXServer对象使用在所有的MapXtreme应用程序中。每一个MapXServer的实例运行在其特有的处理空间。MapXServer被MapXCourier或者MapXBroker启动。(3) MapXBroker:MapXBroker是用来预启动MapXServer实例。并不是所有应用都需要MapXBroker,而仅仅是在应用范围很广时才需要。应用服务器通过使用MapXBroker来优化应用。如果有成百上千的并发用户同时访问,那么不会有相应的MapXServer实例同时响应。因为这需要大量的硬盘空间和内存来同时产生MapXServer 实例。使用MapXBroker

23、 就可以解决这一问题。这也是应用MapXBroker 来优化站点性能的原因。MapXBroker运行的系统服务器是NT server。启动它会产生一个MapXServer的共享池。每一个MapXServer有其特有的处理空间并包含一个MapX对象。应用程序利用MapXServer实例来产生地图对象并释放这个实例在MapXBroker中以便其他用户共享。利用这种MapX对象共享的方式,可以使一台配置适中的服务器利用一个很小的MapXServer对象的共享池就可以处理多个并发用户的同时访问。3.5开发环境工作原理3.5.1 ASPASP的基本工作原理如图1所示:其详细工作过程可以描述如下:1.用户

24、在浏览器的网址栏中键入并发送一个ASP申请。2.浏览器将这个ASP的申请传送到服务器端的IIS。3.WebServer收到这个ASP申请,并从硬盘或者内存中接收正确的ASP文件。4.WebServer将这个文件发送到动态库文件ASP.DLL中。5.ASP文件被从头至尾执行,并根据命令要求生成响应的静态主页。6.将该HTML主页送回客户端浏览器。7.HTML主页将会被用户浏览器解释执行并显示在用户浏览器上。由于脚本在服务器上而不是在客户端运行,传送到客户浏览器上的Web页是在Web服务器上生成的,所以不必担心浏览器能否处理脚本。同时,Web服务器已经完成了所有脚本的处理,并将常规的HTML码传送

25、到客户浏览器。由于只有脚本的结果返回到浏览器,所以服务器端脚本不易复制,用户看不到创建他们正在浏览的页的脚本命令,源程序不会外漏,可以保证程序代码不会被他人盗取,具有较好的保密性。3.5.2 MapXtreme图2 MapXtreme工作流程当用户在客户端进行相应的地图操作后,客户端浏览器便向Web Server发出一个HTTP请求,递交Form表单。ASP脚本语言应用程序则根据提交表单的信息,判断用户的地图操作请求类型,并对MapXtreme地图应用服务器的Map引擎进行访问。Map引擎进行相应的空间分析和处理后,便将处理结果以位图(.gif,.jpg,.png等)的形式传递给Web Ser

26、ver,Web Server再将此位图文件嵌入到HTML页面中并返回到客户端的浏览器上。MapXtreme的这种B/S应用程序的工作过程,实际上就是用户浏览器与应用服务器之间通过静态或动态的WEB页面进行信息交互的过程。这种浏览器/服务器(Browser/Server)模式的优点是:由于用户端所需软件只是一个简单的浏览器,用户基本上无需培训,用户端软件也无需维护;软件的升级与修改只在服务器端进行,对用户透明;服务器与浏览器可处于不同的操作系统平台。第四章 系统设计与实现4.1数据库设计表一:城市表 存放节点编号与对应的城市字段名字段类型说明id数字城市编号Name文本城市名称表二:交通信息(存

27、放交通信息如道路)字段名字段类型说明id自动编号交通路线自动编号JTBH文本交通路线在地图上的编号Spendtime数字交通路线时间权值Spendmoney数字交通路线花费权值Begincity数字该路线起点城市编号Endcity数字该路线终点城市编号表三:景点信息(存放景点介绍信息)字段名字段类型说明Name文本景点名称Info备注景点简介Describe备注景点详细介绍Shipin文本景点视频文件地址表四:道路名称(存放路线编号与道路名称的对照关系)字段名字段类型说明JTBH文本交通路线在地图上的编号DLLX文本实际道路名称4.2界面设计系统的界面设计原则追求简洁易用,使用户一眼看上去就会

28、使用。颜色搭配柔和,美观大方。系统的主界面设计如下:图3主界面一图4主界面二4.3系统实现4.3.1加入MapX对象MapXtreme通过调用MapX启动运行实例来响应用户请求,并建立Session的概念,每个Session管理着一个或多个运行实例。当用户提出申请时,Session也同时启动,实例被创建。在系统运行时,MapXtreme可监控Session的状态,如请求数目、响应时间和服务时间等。在这里,MapXtreme为我们提供了很方便的工具,我们可以利用MapXtreme地图服务器的Application Wizard功能发布一个基本程序框架,然后再进行修改。在MapXtreme ASP

29、应用中,有一个特殊的文件是global.asa,用于开始工作时期和声明对象。当用户第一次调用地图服务功能或者Session 中断后重新调用地图服务功能都需要执行一些MapXtreme 地图引擎初始化语句,此类语句共两部分:配置地图服务初始参数,启动地图服务引擎。这些函数写在global.asa的Session_OnStart事件里面,这个时间相当于VB中的On_Load事件。Session.Timeout :指定工作期持续时间,如果用户不刷新或从应用中请求页面,则在指定的工作时间自动抛出,所有资源还与服务器。Session(cMapImageHeight):设置初始图像的高度Session(c

30、MapImageWidth):设置初始图像的宽度Session(cExportFormat):设置地图图像所采用的格式Session(cExportFileExt): 设置地图图像所采用的扩展名strDirname = /mapimage:指定产生临时图片文件所在的虚拟目录的名Session(cAbsMapPath) = Server.MapPath(strDirname) & :指定存放输出地图图片目录的虚拟全路径Set Session(cMapXObject) = Nothing:设置代表MapX实例对象的系统Session变量初始化清空。在做好了前期工作后,我们就可以在我们想要显示的地图

31、的页面中初始化我们的地图引擎了。在本系统中Container.asp是地图引擎的主页面,框架程序为我们很方便地提供了初始化地图的函数,我们只要在页面中写入代码bResult = InitMapEngine(OBTAIN_FROM_BROKER, GetServerGroupName()就可以在页面中将服务器的地图显示到页面上了。4.3.2地图的基本操作在页面文件中,Toolbar.asp、ZoomControl.asp和LayerControl.asp分别对应基本工具栏、按比例缩放和层控制三个模块。在Container.asp页面中分别调用CreateLayerControl、CreateZo

32、omControl、CreateToolbar创建工具栏。当地图服务器初始化后,也就是函数InitMapEngine的返回值为true时,客户端就可以向服务器端提交地图处理请求,其模式包括表单提交和HTTP附加参数提交两种。本系统采用表单提交模式。在工具栏创建的时候,把工具栏包含在表单中,层控制通过按钮事件提交,而基本工具栏和按比例缩放工具通过鼠标的检测来做相应的操作,通过ToolbarHandler、ZoomControlHandler方法实现。参数提交到Toolbar.asp页面去执行,根据提交的参数,ToolbarHandler、ZoomControlHandler方法判断当前什么工具被

33、选中,然后执行相应的操作。地图的整个基本操作主要通过调用MapXtreme提供的函数库的AdjustMap方法来实现的。其函数原型为:AdjustMap(ByVal MapTool,ByVal nScreenX,ByVal nScreenY)。在这里先把地图的原始状态(图5)展示一下,以供读者在下面的操作应用中作比较。图5地图原图1. 地图放大地图放大功能可以让用户通过点击地图,将地图放大,便于查看地图的局部区域。如(图6)实现的关键代码:AdjustMap cZoomInTool, Request.Form(cMapX_MouseUp), Request.Form(cMapY_MouseUp

34、)图6放大图2. 地图缩小地图缩小功能可以让用户通过点击地图,将地图缩小,便于查看地图的整体信息。如(图7)实现的关键代码:AdjustMap cZoomOutTool, Request.Form(cMapX_MouseUp), Request.Form(cMapY_MouseUp)图7缩小图3. 地图居中地图居中功能可以让用户通过点击地图上的某个点,将该点居中显示出来,便于用户查看该点的地理位置。如(图8)把南平市居中显示。实现的关键代码:AdjustMap cRecenterTool, Request.Form(cMapX_MouseUp), Request.Form(cMapY_Mous

35、eUp)待添加的隐藏文字内容3图8南平市的居中图4. 层显示与隐藏层显示与隐藏功能可以让用户通过复选框选择要显示或隐藏的层,提交后地图作响应,把层隐藏或显示出来。如(图9)把交通信息层隐藏。实现的关键代码:通过对objMapX.layers(iMapLayerName).visible 赋值True or Flase实现图9交通信息层的隐藏4.3.3地图对象查询在框架页的footofmain.asp 页面中,我们加入了用于输入查询信息的表单,如图10。地图对象查询要求用户首先通过单选框选择要查找的是景点或城县,然后在输入框中填写要查找的名称。提交后,如果在地图上找到该点,则在地图上居中显示这个

36、景点或城县。图10查询区域表单主页面提交表单给FindSpace.asp页面进行处理,处理的过程总结成流程图如下(图11):图11 查询对象流程图4.3.4地图信息查看1图元查询地图信息查看指用户通过“信息工具”(在工具栏中选中信息工具),然后点击地图,就可弹出新的页面显示出地图该点上的信息。信息工具和工具栏的其他工具一样,通过表单提交到页面,只是调用不同的处理函数,在这里信息工具提交到Toolbar.asp进行处理。地图信息的查看是建立在地图图元搜索的基础上实现的,只是搜索的范围扩大到所有层,所以在程序开始时要用一个循环获得总的层数。搜索完所有层,将搜索到的图元当作结果返回。这里的流程图和上

37、例对象查询的相似,因此不再累述。搜索图元的函数为InfoPoint()在Toolbar.asp里面实现。在实现了图元对象的查询后,调用CreateInfoHTML()函数对搜索到的对象进一步处理。这涉及到数据绑定的问题。2数据绑定数据绑定技术是将数据源中的数据加入MapX的过程,它将外部数据与地图联系起来。目前有许多不同类型的数据库。为了使用这些来自不同类型数据,都必须使用MapX的数据绑定功能。数据绑定主要有两个作用:1)将属性数据绑定到地图中,并创建专题图。2)以地图中图形对象来显示数据。在本系统中采用ACCESS数据库,所以采用MapX与ADO(Active data objects)数

38、据类型进行绑定。步骤一,数据库的连接各式各样的数据库要连进ASP就需要二传手DAO、ADO、RDO等等在ASP可以里面用如下语句实现:Provider = Provider=Microsoft.Jet.OLEDB.4.0;Path = Data Source= & Server.MapPath(mydb.mdb)Set conn= Server.CreateObject(ADODB.Connection)p1=Provider&Pathconn.Open P1sqlstr=select * from 景点信息 where name= & f.name & Set rst1=conn.Execu

39、te(sqlstr)步骤二,图层和数据库的绑定部分代码如下:Set objDS = Session(cMapXObject).DataSets(strItemLayer)设置数据所在层objDS =Session(cMapXObject).DataSets.Add(miDataSetADO,rst1,objDS,景点编号, ,Layer)DataSets.add方法的各个参数说明如下:第一个参数Type。它可以绑定13种的数据源,毕业设计中选用miDataSetADO,代表MapX绑定ADO数据类型。第二个参数SourceData。指定数据源。这里选用rst1。第三个参数Name。指定被绑定后

40、的dataset的名称。(可选)第四个参数GeoField。指定数据源中某个字段作为与图层匹配的字段。(如果不选,MapX会自动找一个的)第五个参数SecondaryGeofield。指定数据源第二匹配字段。如果指定的第一匹配字段中两个值相等,就靠它来找到对应的对象了。(一般不用)第六个参数BindLayer。指定绑定到哪一层。可以用层名,也可以用Layer对象。(如果不指定,MapX也会自动帮找一个)第七个参数Fields。指定数据源中哪些字段参与绑定。第八个参数Dynamic。指定是否是动态绑定。缺省为false。动态绑定就是要用这个dataset时MapX再临时绑定数据到对象上。绑定完数

41、据,将所需要的数据读出,比如景点介绍等信息,通过session传递到infotool.asp页面进行显示,该页面通过传入的信息,选定景点的背景图案,视频文件等信息进行显示。下面分别是武夷山和鸳鸯溪景点介绍的截图。图12武夷山 图13鸳鸯溪4.3.5与算法结合实现路径决策与显示在阐述路径决策过程的之前,我想先把为记录路线信息而设计的路线信息类的属性和方法写在这里,使读者可以更清晰的了解下面即将涉及到的问题class bestroadpublic road() 用来记录路线所经过城市的编号的数组public roadtimevalue 用来记录路线所经过交通路线所花费的时间public roadm

42、oneyvalue 用来记录路线所经过交通路线所花费的金钱public roadJT() 用来记录路线所经过的交通路线的编号sub init 构造方法,清零操作sub getRoadJT 用来获得路线所经过交通路线的方法end class1路径决策算法本系统的路径决策算法由另一位本组成员负责,该函数的原形表现为findroad(G(),startnode,endnode),对参数的说明,其中G()为一个表示城市间连通信息的表,Startnode为起点,endnode为终点,该函数返回的结果为,所有从起点到终点所经过的路线的城市。比如从泉州到福州,我们可以从泉州-莆田-福清市-福州也可以从泉州-

43、漳平市-永安市-三明-南平-福州。因此,页面需要提交给函数的信息为起点和终点是必须的。城市间的连通信息表通过调用写好的creattable过程实现。起点和终点信息通过footofmain.asp的表单提交。2与算法的结合要使用findroad函数,首先要解决的问题就是从页面提交的起点和终点信息为字符串,即具体的地名,而在算法的参数中抽象为城市编号,因此,首要解决的就是把城市名转化为参数。我们在数据库中建立了一个城市名称和城市编号的对应表,因此这个问题只要通过查询数据库就可以解决了。在本系统的需求中,我们提出了“途经点”的概念,在函数原形中我们并没有考虑到这个需求,但是可以通过另一个办法实现。那

44、就是在所决策的路线中查找是否包含途经点,如果包含才显示出来。在页面的提交过程中,途经点也不是必填项目。所有线路都决策完以后,根据用户所选择的决策条件进行排序,显示前五条路线在页面上供用户选择。线路选择流程图(图14)如下:图14线路选择流程图线路选择页面操作流程如下:首先填写起点,终点和途经点信息,如图(图15):图15 线路选择页面操作流程一然后提交到下一个页面,为了方便用户查看路径,框架页设计成可以移动的形式。如图(图16):图16 线路选择页面操作流程二3最佳路径在地图上的显示当用户选择好路径以后,系统就应该把路径显示在地图上了,这部分用代码加注释的方法来解释会比较直观一些,详细代码在f

45、indroad.asp 中,这里把主要代码列出。路径显示的效果图(图17):图17 最佳路径显示图主要代码,注释是放在代码后面的。set nodelayer=Session(cMapXObject).Layers(交通信息)设置当前要操作的层为“交通信息”set findds=Session(cMapXObject).DataSets.Add(miDataSetLayer,nodelayer)set nodelayer.find.finddataset=finddsset nodelayer.find.findfield=findds.fields(交通编号)数据绑定nodelayer.sel

46、ection.clearselection清除该层上的图元选定状态While roadnode(i)0 这里的roadnode数组是用户选择的最佳路径所经过交通路线编号sql=select DLLX from 道路名称 where JTBH=&roadnode(i)&rs.open sql,conn,1,1response.write roadnode(i)response.write rs(DLLX)response.write rs.close从数据库的对照表中选出道路名称,并显示set foundobj=nodelayer.find.search(RoadNode(i),)If foundobj.FindRC Mod 10 = 1 Thennodelayer.Selection.add foundobjEnd Ifi=i+1Wend将路线的编号对应地图层上图元的编号添加为选定状态Session(cMapXObject).Layers.Remove 最佳路径Session(cMapXObject).Layers.CreateLayer 最佳路径, , 1set newlayer=Session(cMapXObject).Layers(最佳路径)set features=nodelayer.selectionfor each feature in featuresnewlay

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号