毕业设计(论文)-基于J2ME平台的GPS导航系统.doc_第1页
毕业设计(论文)-基于J2ME平台的GPS导航系统.doc_第2页
毕业设计(论文)-基于J2ME平台的GPS导航系统.doc_第3页
毕业设计(论文)-基于J2ME平台的GPS导航系统.doc_第4页
毕业设计(论文)-基于J2ME平台的GPS导航系统.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

I摘要摘要本文系统将在J2ME平台下,利用J2ME的JSR179定位开发包与Google静态地图实现定位、兴趣点添加、路线规划以及离线地图定位等功能。在用户手机硬件支持J2ME和定位功能的情况下,用户只要支付少量的GPRS流量费即可对用户的位置进行定位、路线规划等功能。另外为了节省用户的GPRS流量,设计中也特定开发了离线地图模式,在不联网的情况下,用户依然可以进行GPS定位。本篇论文将分为七章进行介绍。第一章绪论,介绍课题研究的背景、手机GPS导航发展现状以及课题研究的主要内意和意义;第二章主要对本文系统用的相关技术进行介绍;第三、四、五章为本篇论文的重点,详细阐述了本文系统的需求、详细设计以及存在的问题等;第六章为GPS手机的发展前景展望;第七章则是本篇论文的总结。【关键词关键词】J2ME,MIDP,GPS,JSR179,Google静态地图IIAbstractThispapersystemwillbeinJ2MEflatweusetheJSR179positioningandJ2MEsetupsstaticmaprealizepositioningGoogleaddedinterestpointsrouteplanningandofflinemaplocationetc.Function.InthemobilephoneuserstolocatefunctionalandJ2MEhardwaresupportforthecaseaslongastheuserspayasmallfeetotheGPRSflowcanbeuserlocationpositioningrouteplanningetc.Function.InordertosavetheuserofGPRSflowdesignalsodevelopedofflinemapspecificmodelnotconnectedtotheInternetuserscanstillfortheGPSpositioning.Thispaperwillbedividedintosevenchapterwasintroduced.ThefirstchaptertheintroductionthispaperintroducesthebackgroundofthesubjectresearchmobileGPSnavigationdevelopmentpresentsituationandthemainresearchtopicinmeaningandsignificanceThesecondchaptertothearticlewiththerelevanttechnologyofthesystemareintroducedChapter345inthekeyforthispaperthispaperexpoundsthesystemdemandandthedetaileddesignandtheexistingproblemandsoonThesixthchapterfortheGPSphoneprospectThispaperistheseventhrulessummary.【KeyWords】J2ME,MIDP,GPS,JSR179,GoogleStaticMapIII目录摘要摘要.IABSTRACT.II目录目录.III引言引言.V第一章第一章绪论绪论.11.1课题研究背景.11.2手机GPS导航发展现状.11.3课题主要内容和意义.2第二章第二章相关技术概览相关技术概览.42.1基于位置的服务.42.1.1基于位置服务的应用范围.42.1.2基于位置服务的定位方法.42.2移动地理信息系统.62.3J2ME简介.72.3.1J2ME架构.72.3.2JVM(虚拟机).82.3.3MIDP(移动信息设备简表).82.4JSR179开发包.92.5GOOGLEAPI简介.102.6路径规划的技术选择.102.6.1A算法实现最短路径搜索.102.6.2GoogleDirectionsAPI提供服务.112.6.3路线规划最终方法选择.12第三章第三章软件需求分析软件需求分析.133.1用户需求.133.2功能模块划分.133.2.1功能模块图.143.2.2功能要求.14第四章第四章详细设计与开发详细设计与开发.164.1MIDLET开发流程介绍.164.2各功能模块详细设计.17IV4.2.1界面切换类.174.2.2联网地图类.194.2.3离线地图类.244.2.4各线程类.264.2.5实体类.274.2.6GoogleMaps类(引用开源代码).284.2.7兴趣点添加类.294.2.8兴趣点查询、删除、锁定类.304.2.9指定地点范围兴趣点搜索类.324.2.10路线规划具体的实现.34第五章第五章开发过程中问题及解决方案开发过程中问题及解决方案.405.1存在问题及解决.405.1.1Google静态地图访问限制.405.1.2闪屏.405.1.3网络延迟.415.1.4不同的屏幕尺寸问题.415.1.5模拟器到真机.415.2尚未解决的问题.41第六章第六章GPS手机发展前景展望手机发展前景展望.43第七章第七章结论结论.44致谢致谢.45参考文献参考文献.46V引言手机是人们日常生活中使用非常频繁的通信工具,虽然现在其费用比有线电话高,但是其随时随地的沟通优势,使人们摆脱了电话线路的束缚。目前在大部分地区,几乎人手一部或几部手机,正是由于手机的高普及率,才使得无线移动商务迅速普及和发展。JAVA技术已经从一种最初用来编写与硬件无关的嵌入式系统的编程语言变成了一种与厂商无关、与硬件无关的健壮的服务器端技术,它使整个企业界可以全面发掘以Web为核心的应用程序的巨大潜力。随着JAVA技术的不断更新与提高,特别是J2ME技术的出现,使得手机应用程序越来越成为人们关注的焦点。J2ME技术目前最流行的就是在制作手机应用程序方面,JAVA手机的出现使得这一技术更有它的用武之地,发挥着灵活、轻便、快捷的作用。本文就将详细的介绍J2ME这一技术在手机软件制作方面的具体过程以及其重要的作用。1第一章绪论本章主要介绍本文系统研究的背景、手机GPS导航发展现状以及课题研究的主要内容和意义。1.1课题研究背景1967年加拿大测量学家R.T.Tomlinso提出并建立了世界上第一个实用的地理信息系统,随后从1973年美国国防部开始制定全球定位系统(GlobalPositioningSystem:GPS)计划后,历经了整整二十年的时间,才架构起二十四颗卫星(二十一颗工作卫星,三颗备用卫星)的全球GPS网络,能提供全方位的即时导航和定位能力。这二十四颗卫星布置完之初,一直都是由军方或国家量测单位在使用这套系统,即使对民间开放,定位的精确度也相当有限,但随着技术的发展和市场民情的需求,GPS开始向民间渗透现在已在个人化、生活化、大众化的市场取得了一席之地。随着移动通信技术的发展,我国移动用户数量也在快速增长。2007年我国的手机用户约为5.40亿,而根据中国三大移动运营商公布的数据显示,截至2011年8月底,中国手机用户总数却已达9.2726亿户,手机上网用户已超3亿户。与此同时人们对手机所赋予的功能也已经扩展到空间定位、分布式计算等高端领域。人们的社会活动等也越来越希望突破时间和空间的约束,这使得手机上GPS应用的必然性。目前中高端智能手机都已经装载了GPS导航模块,手机GPS导航领域的发展前途一片光明。1.2手机GPS导航发展现状目前手机GPS导航模式主要有两种,一种是本地模式,另一种则是客户端服务器模式。本地模式,即手机利用自身存储能力将空间地图保存到手机里,定位导航时只需要调用本地数据即可。但这种方式对手机的存储空间和数据处理能力都有很大的要求,使得导航系统的分析功能和服务不能过于复杂,地图数据也不能太大,导致GPS应用服务在一般手机上受到限制。当然本地模式的好处就是不产生GPRS流量费,可以说是绝对的免费了。未来手机存储能力和数据处理能力的提升,这种方式GPS导航应该会得到广泛应用。客户端服务器模式则是将地图信息的相关数据保存在服务器端,手机通过HTTP等协议请求服务器来获取相关的地图数据信息。这种模式使得手机客户端的压力大大减小,不必再存储庞大的地图数据信息,可以将手机的数据处理能力用来提升用户体2验等更重要的方面。这样一种模式对手机网络访问速度有一定要求以及会产生GPRS流量费,但以目前来看这已经不是问题,一般手机的网络访问速度都是能达到要求,GPRS流量费用户也应该可以接受的,相当于发几个短信罢了。目前的地图数据信息描述和表现主要有两种方式:栅格图片和矢量图片。栅格电子地图是各比例尺的纸介质地形图和各种专业使用的彩图的数字化产品,就是每幅图片经扫描、几何纠正及色彩校正后,形成在内容、几何精度和色彩上与地形图保持一致的栅格数据文件。矢量地图是每幅经扫描、几何纠正的影像图,是对一种或多种地图要素进行矢量化形成的一种矢量化数据文件,是一种更为方便的放大、漫游、查询、检查、量测、叠加地图。这两种实现各有优缺点,栅格电子地图生成比较方便,图像比较细致,和人们日常使用的地图类似,容易被用户接受。但是,栅格电子地图数据量比较大,存储不方便,放大过程中会产生失真,数据不是很准确,很难进行全局或者局部校正,更新起来也比较费事。矢量电子地图生成相对费事,但是数据经过压缩,结构紧湊,数据量小,冗余度低;有利于网络和检索分析;图形显示质量好,精度高;但数据结构复杂,多边形叠加分析比较困难。矢量电子地图可以随意缩放,缩放过程中不会失真,可以进行全局或者局部校正,更新起来也很方便。Google静态地图API将地图以图片形式展现,使用http接口进行图片地图的创建,无需使用java脚本实现,适用于手机或定制客户端系统的服务调用。开发者无需再考虑地图数据信息的制作、传输、存储等,开发者只需要通过HTTP请求,便可以获取想要的地图图片。通过静态地图调用API,可以进一步增加电子地图的应用范围,同时也使获得地图的方法变得更为简洁直接。本文系统也将采用此方法进行GPS导航系统的开发。1.3课题主要内容和意义目前市场上手机GPS导航较为成熟的系统都为本地模式的GPS导航系统,将地图数据信息下载到用户的手机自身存储空间,具有响应快速的优点,但却过于消耗手机的存储空间,又手机处理能力有限,使得做出来的导航软件不能够处理过于复杂的分析和服务,应用十分受限。因此客户端服务器模式的研究与开发成了近年来的研究热点。Google公司推出的Google静态地图API为手机开发者提供了通过HTTP请求便能得到想要地图的服务。开发者只需要将定位的信息以及想获取到地图图片的相关信息通过URL传递给Google服务器,便可以得到相应的地图图片。Google公司的这项服务完全符合客户端服务器模式用户不需要存储地图数据到手机自身存储里,开发者也不需要过多设备软件制作复杂的栅格地图或矢量地图,只需要掌握相关API的使用便可高效地获取想要的地图,完全可以满足普通用户的GPS导航需求。本文系统也将采用Google静态地图API,在满足一般手机用户基准上,利用3J2ME的JSR179规范为大家带来一款手机GPS导航软件。该软件主要实现了实时定位、兴趣点相关操作、路线规划等,也可以作为利用Google静态地图API进行手机GPS导航软件开发的其他手机开发者参考。4第二章相关技术概览本章主要介绍本文系统用到的相关技术知识,包括位置服务、移动地理信息系统、J2ME平台的简介、J2ME的JSR179开发包介绍、GoogleAPI简介以及做路线规划时的技术介绍和选择。2.1基于位置的服务基于位置的服务(LocationBasedService,LBS),它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(GeographicInationSystem,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务。2.1.1基于位置服务的应用范围基于位置的服务(LocationBasedService,LBS)的应用非常广泛,可以渗透到任何行业,为任何群体提供服务。LBS的应用服务可以归为以下几类:(1)个人应用领域个人应用领域,LBS主要服务有:定位、路径规划、查找目标、旅游导航、基于定位的一些游戏等。最常用的是为游客提供定位服务,为初到某地的用户提供路径规划,为用户提供公交路线,为用户提供兴趣点的搜索,如酒店旅馆等的位置。(2)公共服务领域LBS在公共服务领域中主要提供公共安全服务应用和智能交通管理及引导。公共安全服务主要涉及危机情况下当事人位置的准确掌握,为救护、消防、公安等紧急服务提供快速准确的定位指引,对保障人民生命产生安全起到了至关重要的作用。LBS在智能交通管理领域也对缓解城市的交通压力起到了重要的作用,通过监控道路段的路况和车流量让驾车人员能即时了解路段交通状况,从而有效地选择行车路线。(2)商业应用领域在商业领域,LBS可以为用户提供周边商业信息,如附近餐馆的近期促销信息,旅馆酒店等的打折优惠信息。LBS为物流、安全、交通、城市规划等传统产生提供了精确的位置信息服务,在商业上的应用也越来越重要,发展前景很光明。2.1.2基于位置服务的定位方法目前,基于位置服务的方法主要有三种:基于移动终端卫星定位系统的GPS定位方法、基于移动网络的基站定位方法、无线辅助卫星定位系统的A-GPS定位方法。5GPS定位是借助全球定位系统的卫星体系来实现的。该方法不需要手机连接移动网络,而依靠手机自身的GPS定位模块获取卫星信号,从而达到定位的效果。但在卫星信号较差的地区性能和可能性都会急剧地下降,其初始化定位速度相对较慢。原理图如下:图2-1GPS定位原理图基站定位依懒移动信号发射架和移动蜂窝基站的信号转发,移动电话测量不同基站下行导频的TOA(TimeofArrival,到达时刻)或TDOA(TimeDifferenceofArrival到达的时间差),根据该测量结果并结合基站的坐标,一般采用三角公式估计算法,就能够计算出移动电话的位置。实际的位置估计算法需要考虑多基站(3个或3个以上)定位的情况,因此算法要复杂很多。一般而言,移动台测量的基站数目越多,测量精度越高,定位性能改善越明显。原理图如下:图2-2基站定位原理图A-GPS辅助定位利用峰窝无线网络提供辅助信息来帮助卫星系统作为参考点进行定位,并不对位置信息进行计算,而是将GPS的位置信息数据传给移动通信网络,由6网络的定位服务器进行位置计算,同时移动网络按照GPS的参考网络所产生的辅助数据,如差分校正数据、卫星运行状态等传递给手机,并从数据库中查出手机的近似位置和小区所在的位置信息传给手机,并从数据库中查出手机的近似位置和小区所在的位置信息传给手机,这时手机可以很快捕捉到GPS信号,这样首次捕获时间将大大减小,一般仅需几秒的时间。不需像GPS的首次捕获时间可能要2-3分钟时间,而精度也仅为几米高于GPS的精度。原理图如下:图2-3A-GPS定位原理图2.2移动地理信息系统移动地理信息系统(MobileGeospatialInationSystem)的出现使人们在旅游中享受自主旅游的愿望得以实现。MobileGIS是GIS从静态走向动态环境的重大发展,通过综合运用GPS的精确定位技术、便携移动设备(如PocketPC、手机)、无线Internet接入和GIS的空间信息处理能力,使得系统能够实时地获取、存储、更新、处理、分析和显示地理信息,在现在乃至未来将发挥出巨大的潜力。移动GIS(MobileGIS)是建立在移动计算环境、有限处理能力的移动终端条件下,提供移动中的、分布式的、随遇性的移动地理信息服务的GIS,是一个集GIS、GPS、移动通信(GSMGPRSCD2MA)三大技术于一体的系统。它通过GIS完成空间数据管理和分析,GPS进行定位和跟踪,利用PDA完成数据获取功能,借助移动通信技术完成图开、文字、声音等数据的传输。与传统的GIS相比,移动GIS的体系结构略微复杂些,因为它要求实时地将空间信息传输给服务器。移动GIS的体系结构主要由三部分组成:客户端部分、服务器部分和数据源部分,分别承载在表现层、中间层和数据层。表现层是客户端的承载层,直接与用户打交道,是向用户提供GIS服务的窗口。该层支持各种终端,包括PC机,为移动GIS提供更新支持。数据层是移动GIS各类数据的集散地,确保GIS功能实现7的基础和支撑。中间层是移动GIS的核心部分,系统的服务器都集中在该层,主要负责传输和处理空间数据信息,执行移动GIS的功能等。包括Internet、WebServer、MapServer等组成部分。2.3J2ME简介J2ME的设计初衷是运行在不同的嵌入式系统和消费电子设备上。为了适应不同的设备,J2ME首先对不同的设备进行了抽象。J2ME在设计规范时,遵循“对于各种不同的设备设定一个单一的开发系统是没有意义的事”这一基本原则。因此,J2ME先将所有的嵌入式设备大体上分为两种:一种是运算能力有限且电力供应也有限的嵌入式设备(如PDA和手机);另一种是运算能力相对较佳并在电力供应上相对比较充足的嵌入式装置(如冷气机、电冰箱和机顶盒)。Java引入了一个Configuration的概念,把上述运算功能有限、电力有限的嵌入式设备定义在CLDC规范中,而将另一种装置定义在CDC(ConnectedDeviceConfiguration,连接设备配置)规范中。也就是说,J2ME利用Configuration的概念把所有的嵌入式设备区分成两种抽象的类别。Configuration可以当作是J2ME对于两种类型嵌入式设备的规范。在这些规范中,定义了这些装置至少要符合的运算能力、供电能力和内存大等规范,同时也定义了一组在这些装置上执行的Java程序所能用的基本类库。在这些规范中所定义的基本类库为Java核心类库的子集以及该类别设备特性相符的扩充类库。就CLDC规范而言,能支持的核心类库有java.lang.、java.io.和java.util.,能支持的扩充类库是java.microedition.io.。区分出两种主要的Configuration后,J2ME接着定义了框架(Profile)。Profile是架构在Configuration之上的规范。之所以有Profile的概念是为了要更明确地区分出各种嵌入式设备上Java程序该如何开发、具有哪些功能。因此,Profile中定义了与特定嵌入式设备非常相关的扩充类库。当然,这些扩充类库也是建立在底层Configuration所定义的核心类库基础之上的。2.3.1J2ME架构J2ME架构的模块化设计使应用程序可以灵活适应小型计算设备的限制。J2ME架构没有替代小型计算设备的操作系统。相反,J2ME架构由位于原生操作系统之上的多层软件组成,这些软件共同称为“连接有限设备配置”(ConnectedLimitedDeviceConfigurationCLDC)。安装在操作系统之上的CLDC形成了小型计算设备的运行时环境。J2ME架构由3个软件层组成:第一层是包括在内的配置层,这个层次直接与原生8操作系统进行交互。配置层还处理profile和JVM之间的交互。第二层是profile层,由小型计算设备的应用程序编程接口(API)的最小集合组成。第三层是MobileInationDeviceProfile(MIDP)层。MIDP层由用户网络连接、永久存储和用户界面的javaAPI组成。它还能够访问CLDC库和MIDP库。2.3.2JVM(虚拟机)JVM是专门为微型电子设备与资源受限设备如:手机、寻呼机、移动互联网设备、家用微电子设备等设计的一种轻便、紧凑的JAVA虚拟机。JVM可以为微型电子设备提供一个完整的JAVA运行环境,除了一些微型设备所必需的适当的功能有所不同外,它是由JAVA虚拟机规范定义的真实的JAVA虚拟机。它是专门为那些受资源限制,只有几百K字节内存的微型设备设计的。JVM起初是由SUN微系统实验室为一个名叫“Spotless”的项目创建的。它的目标是为资源受限制的Palm(是目前较为流行的掌上电脑操作系统)可连接的电子设备,实现一个java虚拟机。基于上述原因,JVM具有以下几个特点:(1)小,仅具有40KB至80KB的静态内存。(2)轻便、精巧。(3)模块化并可定制。(4)尽可能完全紧凑的完成设计目的。2.3.3MIDP(移动信息设备简表)MIDP是专门为互联受限设备配置设计的,它为移动设备提供了一套API集合,MIDP包含用户界面类、持久存储功能与网络功能。它同时也包括一个供用户下载新应用到终端设备的标准运行环境。运行在MIDP下的小应用程序叫做MIDlet移动设备小应用程序,它与Applet类似。MIDP要求平台设备提供一个机制用来存储简单的数据记录,通过正常的平台事件,比如重新启动和电池更新维护系统的完整性。MIDP是以SUN、Motorola、Nokia为中心的MIDPEG组织(MobileInationProfileExpertGroup)所制订出来使用在CLDC上的Profile是以能使用在移动电话、双向对讲机、可无线通信的PDA(个人数字助理)上面为前提设计出来的。另外,像日本国内的NTTDoCoMo、J-PHONE、KDDI等电信商与移动电话制造商也都曾参与了MIDPEG。MIDP是在CLDC的功能上附加提供适合目标设备用的GUI与事件处理功能。这样一来,就可以当成MIDP应用程序(MIDlet)来运行了。MIDP由于是由多个企业所共同策划出来的开放标准,因此主要的移动电话制造商9也会制造出大量的对应机种。也就是说,以MIDP为基准所制作出来的应用程序,也将可以在流通于市面上的移动电话上执行。另外,MIDP不仅限于移动电话,也已经被移植到PDAPalmOS上,而以MIDPforPalmOS的名字来称呼(与KJava是不同的)。在不使用各电信商的扩展API的时候,制作给移动电话用的MIDlet也将可以使用在PalmOS上面。由于未来MIDP也将会搭载到不同设备之上,也由于其兼容性高,只要写过一次程序,就可以在其他移动电话或是移动电话以外的设备上执行;而这也就是它最大的好处。2.4JSR179开发包Java2PlatMicroEdition(J2ME)(JSR-179参考http:aboutJavacommunityprocessfinaljsr179)的定位API在S60和Series40第三版中都提到,这是一个可以在大多数J2ME中使用的可选包。API需要的最低平台为ConnectedLimitedDeviceConfiguration(CLDC)1.1,因为API需要数学浮点运算的支持。S60和Series40同样支持MMAPI,详情请参考LocationAPIforJ2ME定位API的目的就是开发具有定位功能的设备的应用程序。根据设备的自然情况,API提供利用设备的方法。另外,定位API是很多易用的类和接口的压缩包,其在开发移动应用程序的时候具有以下三个特点:(1)获取设备的位置信息(2)创建、编辑、存储、销毁陆标(3)获取设备的定位定位API首先需要连接一个定位方法,利用定位方法产生定位对象,每种定位方法都不一样。比如,各种方法所需要的时间都不一样,每种方法的精确度也不一样。最常用的方法有基于设备(比如GPS,这种方法基于卫星全球定位系统)、基于网络(比如蜂窝,这种方法中网络决定了位置),还有混合方法(比如A-GPS方法,这种方法利用网络信息来加速定位)。下面的图表显示了APIMIDLet使用GPS定位方法来定位的结构。对MIDLet在SDK环境中检测后,还必须在真实的环境中进行检测,来确保正确运行。真实的环境意味着在支持移动定位的设备中使用API定位。10图2-4定位API使用GPS定位模型图2.5GoogleAPI简介本文软件中只用到两个GoogleAPI,分别是GoogleStaticMapsAPI和GoogleDirectionsAPI。GoogleStaticMapsAPI,通过网址返回图像(GIF、PNG或JPEG)来响应HTTP请求。您可以为每个请求指定地图的位置、图像的大小、缩放的级别、地图的类型以及可选择标记在地图各个位置上的放置。些外,您还可以使用字母字符为您的标记制作标签,以便在“关键字”中引用这些标记。GoogleDirectionsAPI,是一种使用HTTP请求计算多个位置间路线的服务。路线可以以文本字符串(如“ChicagoIL”或“DarwinNSWAustralia”)或纬度经度坐标的形式指定起点、目的地和路标。GoogleDirectionsAPI可以使用一系列路标传回多段路线。此服务通常适用于计算路线的静态(事先已知)地址,以便将应用程序内容放置在地图上;但此服务不适用于对用户输入的内容进行实时响应。有关动态路线计算(例如,在用户界面元素中),请参见JavaScriptAPIV3DirectionsService文档。计算路线是一种耗时、耗资源的任务。如果可能,系统会使用此处介绍的服务提前计算已知地址,并将结果存储在您自己设计的临时缓存中。2.6路径规划的技术选择路径规划在导航系统软件中是必不可少的一部分,主要用于为用户提供起始位置到目的地的最优路径或最短路径。下面介绍路径规划中的两种方法,以及本文最终选择的方法。2.6.1A算法实现最短路径搜索A搜寻算法,俗称A星算法,作为启发式搜索算法中的一种,这是一种在图形平11面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或线上游戏的BOT的移动计算上。该算法像Dijkstra算法一样,可以找到一条最短路径;也像BFS一样,进行启发式的搜索。A算法最为核心的部分,就在于它的一个估值函数的设计上:f(n)=g(n)+h(n);其中f(n)是每个可能试探点的估值,它有两部分组成:一部分,为g(n),它表示从起始搜索点到当前点的代价(通常用某结点在搜索树中的深度来表示)。另一部分,即h(n),它表示启发式搜索中最为重要的一部分,即当前结点到目标结点的估值,h(n)设计的好坏,直接影响着具有此种启发式函数的启发式算法的是否能称为A算法。一种具有f(n)=g(n)+h(n)策略的启发式算法能成为A算法的充分条件是:1、搜索树上存在着从起始点到终点的最优路径。2、问题域是有限的。3、所有结点的子结点的搜索代价值0。4、h(n)=h(n)(h(n)为实际问题的代价值)。当此四个条件都满足时,一个具有f(n)=g(n)+h(n)策略的启发式算法能成为A算法,并一定能找到最优解。对于一个搜索问题,显然,条件123都是很容易满足的,而条件4:h(n)=h(n)是需要精心设计的,由于h(n)显然是无法知道的,所以,一个满足条件4的启发策略h(n)就来的难能可贵了。不过,对于图的最优路径搜索和八数码问题,有些相关策略h(n)不仅很好理解,而且已经在理论上证明是满足条件4的,从而为这个算法的推广起到了决定性的作用。并且h(n)距离h(n)的呈度不能过大,否则h(n)就没有过强的区分能力,算法效率并不会很高。对一个好的h(n)的评价是:h(n)在h(n)的下界之下,并且尽量接近h(n)。2.6.2GoogleDirectionsAPI提供服务GoogleDirectionsAPI主要服务就是为了计算路线。客户端发送路线请求,服务器根据请求,以XML或JSON形式输出给客户端。GoogleDirectionsAPI请求是以下形式的HTTP网址:12GoogleDirectionsAPI使用以下网址参数定义路线请求:(1)origin(必填)-希望根据其计算路线的地址或文本纬度经度值。(2)destination(必填)-希望根据其计算路线的地址或文本纬度经度值。(3)mode(可选,默认为driving)-指定计算路线时使用的出行方式。在出行方式中指定有效的值。(4)waypoints(可选)指定一组路标。路标通过经过指定的位置可以改变路线。可以以纬度经度坐标或将进行地址解析的地址的形式指定路标。(5)alternatives(可选)设置为true时,可以指定路线服务可以在响应中提供

温馨提示

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

评论

0/150

提交评论