版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
吉林建筑大学毕业设计(论文)PAGE19社会实践报告系别:教育系专业:教育学姓名:学号家教实践报告在大学的第一个寒假,我迎来了人生的第一次家教,一方面作为学校布置的社会实践,另一方面则作为一次磨练自己的良好机会,我满怀期待地开始了我的第一份工作。虽然我是师范院校的学生,但对于教人而言,我现在还完全是一个生手,没有任何经验,不过这并没有影响我的信心,毕竟学生只是一个初二的学生,对我这个已经考上大学的大学生而言,应该不成问题,关键是要把他教好,要真正的让她在寒假这一次的学习中学到东西,而不仅仅是在消磨时间,这便成了我对这份工作的最终目的。我所教的这名学生,他所欠缺的科目也是一般男生的通病—语文和英语。还好,我对语文和英语还算小有心得。第一堂课下来,我发现他在古文理解和英语题目上的表现并不像他母亲所说的那样差强人意,只不过是缺乏足够的兴趣而已。当天回到家,我把一天的课程回顾了一遍,总体感觉还是可以的。归纳了一下,觉得有几点需要改进。一:在讲课方面,我需要分清楚什么是重点,不是重点的可以一带而过,毕竟这位学生在课堂的时候也不是一点都没听,针对重点拿分的项目要详细讲解,这样才能让他在以后的考试中成绩有所提高。如此,才是补课之功效有所发挥了。有重点有目的去教学,使学生的学习成绩得以提高。二:在讲的过程中,我应该尽量耐心点,细心点,慢慢的给学生讲,毕竟他才初二,可能有些我认为很简单的题对他来说并不是那样,并没有那么简单,好理解,所以,切记不能烦躁,不能讲了一遍两遍他没听懂就凶学生,嫌他笨,这样只会适得其反,甚至会让学生对学习产生反感,这在我第一次上课的过程中,是有犯过这种毛病的,所以后来我改变了很多,尽量让自己耐心去给他讲解他不懂的难点和疑点。三.在习题布置与讲解中,我要尽量备备课,一定要挑些有针对性的题目给学生做,不能做了很多题,但很多都不是重点,那样更多的依然是浪费时间。另外,学生本身的语言基础比较弱,也先强化了基础,才能够去提高层次,因此,必须有针对性的去教他。四、最后就是要和学生处理好关系,建立感情基础,要让他把我当成好朋友,当成大姐姐,而不是单纯的老师,家教,这样才能更好的沟通,才能更好的解决他在学习上的问题,提高学习成绩。之后,我又为他量身定制了语文和英语的学习计划,主要以培养他的语言兴趣,扎实他的语言基础为主。在语文学科上,我要求他戒骄戒躁,保证每天扎实掌握一篇古文即可,但必须持之以恒,毕竟语文学习重在平时,从词义到段意最后是通篇翻译,逐步推进,一步步扎实基础,首先是他在课余时间进行自习,找出疑问和不懂得地方,然后在课上有我进行解答,并且对他进行检测,特化他的弱项。在英语学科上,我要求他从最基本的词汇入手,因为对于一门语言的学习,没有扎实的词汇将会寸步难行。我并没有要求他每天必须背多少的单词,记多少的句型,因为同样是学生的我对于英语的学习深有体会,在学习英语上任何形式的突击都是无用的,苍白的。英语学习是一个潜移默化不断积累提高的过程,我不可能在短短两周的家教过程中就使他的英语水平有显著提高,甚至突飞猛进。因此,我决定这两周的时间用以培养他的英语学习方法,正确的方法一旦确立,他的英语水平势必将取得进步,在课后我不仅布置了适当的作业,也推荐他看一些中国古典文言书籍和经典的英文电影,用以培养他对语文和英语的兴趣。接下来的为期两周的教学,就在不断的改进与搜索中度过了,在拿到工资的时候,我感到很开心,毕竟是自己人生中的第一份劳动所得啊!同时,做家教也让我有了很深的体会,谈到做家教的体会,许多当过家教的大学生说,“其实做家教是对自己很好地考验,能锻炼口才,加强与人交流的能力,也是对自己知识的肯定。见识不同的人,不同的家庭,学会怎样做人,与人相处,提高适应社会的能力。的确,大学生做家教得到的不仅是经济上的补贴,更重要的是我们自身的价值得到社会肯定,增进我们进入社会的信心。同时,在与家长与学生的沟通中,在各方面的打听和了解下,我对家教所处的现状也有了一定的了解。受高考考纲的影响,大约30%的学生选择语数外三门主课全部聘请家教,随后针对自己偏弱的课程在再聘请相应的家教,这也是因为语数外三门主课在高考中所占分数比例高。很多家长不惜重金,也要为孩子请个家教,即使家中并不富有,然而,省吃俭用,拼死拼活的都要把自己辛辛苦苦赚来的钱大把大把的送给家教。从一个层面上来说,这是出于每个家长对孩子“望子成龙,望女成凤”的美好愿望,从而养成了这种社会家教成风的习气,究竟是好是坏,对孩子的学习究竟是否有帮助,为什么现在需要补课的孩子会如此之多,为什么在学校里他们不能够吧老师讲的学好?难道是老师故意在课堂上不好好讲,为了让自己能够多补些课?我想应该不是的。那么,为什么现在的都需要补课?为什么在课堂上他们听不进去?以往只有学习不好的人才去补课?难不成现在的学生都学习不好?这的确是一个值得思考的问题。我想很大一部分是社会形成了这种补课风气,使得家长看到人家孩子补了,想到自己孩子没补就担心自己的孩子会落后,会比别人家差,于是明明自己孩子成绩不是很长差,也让孩子去补课,这牙膏孩子明明懂了的东西还要去补,纯粹是浪费时间,没有学到更多有用的东西。成绩还是没有提高,甚至还不如从前。这样,补课变成了孩子日后的必修课,孩子的学习积极性也逐渐消失。当然,我不是指责这些家长拼命的给自己孩子补课,毕竟他们也是想让孩子的成绩更好。只是,也许他们的方法不对,诚然这一点也不是我可以去改变或纠正的,甚至我的看法也并不一定就是对,可是这种全社会都兴冲冲的去补课,我想的确不是一件好事,如果要花如此多的钱去自己补课,那么学校这种东西似乎可以不存在了,还免得你花这么多钱,直接去考试就可以了。所以,花最少的钱让孩子在学校学好,回家要做的就只是复习了,这才是上策。当然,在家教的过程中,就是人与人交流的过程,在这之中,大学生可以提前感受下社会是什么样的,在和家长交流的过程中,你可以明白雇主和员工之间大概就是这样了,你要拿钱,你就要搞好和雇主的关系,这样你才能够让雇主心甘情愿的把钱给你,把孩子放心交到你手上,在教学的过程中,你也可以在教导过程中不断地发现问题,不断地改进,问问自己怎样才能让学生学好,让他们真真正正的在你教的过程中,在脑中领悟到知识的本质,而不再局限于浅显的表层,搞好你与学生的关系,让学生喜欢你,也许做好的话,你就多了一份固定的工作了,父母听到孩子说你补得好,是对你工作的最大肯定。总之,谈到做家教的最大感觉,应该是,用心和学生沟通,成为他们的朋友,我们都要用心去做每一件事,做家教如此,做任何其他的事都是这样。同时,深深体会到了挣钱的不容易,一分耕耘一分收获,只有付出,才会有回报,打工远远没有我们想象的那么简单,那么轻松,这是一份工作,需要我们全身心的投入和付出。毕业论文基于android系统的电子地图加载与实现吉林建筑大学测绘与勘查工程学院20年6月毕业论文基于ANDROID系统的电子地图加载与实现学生:指导教师:讲师专业:地理信息系统所在单位:测绘与勘查工程学院答辩日期:3摘要随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问Web网站并处理各种各样的业务。因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。在如今这个智能手机系统群雄纷争的时候,2008年Google推出了一款名为Android的开源智能手机操作系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。这款软件包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。BaiduMap作为最先推出的网上地图之一,各种数据信息最为全面和准确,本系统通过BaiduMapApi设计一个能够实现定位、导航和交通信息发布等等功能的在线导航软件。在Android设备上具有良好的用户界面、响应速度和用户体验。关键词智能手机AndroidBaiduMap导航应用4AbstractWiththerapidproliferationofsmartphones,smartphoneoperatingsystemmarket,windandwater.InorderforsmartphoneuserstochecktheInternetanytime,anywhereservicesprovidedanefficientwaytoexpandthefunctionofthesystemwillbeappliedtothemobilephoneterminal,themobilephonetoInternetaccessviamobilenetworks,andvarietyofWebsitesandprocessbusiness.Therefore,thesmartphoneapplicationsandtheneedfortheservicewillhavebroadprospectsfordevelopment.Intoday'ssmartphonesystemwhendisputeswarlords,2008,GoogleintroducedasmartphonecalledtheAndroidopensourceoperatingsystem,whichusesLinuxkernel,OpenHandsetAlliance(OHA)memberscanbefreetouseandmodifytheSDKpackage,thesystemIthasagoodopen-sourcenatureoftheexpansionof.Thesoftwareincludestheoperatingsystem,userinterfaceandapplicationsthatneedtoworksmartphonesallthesoftware.Android'sbiggestfeatureisitsopenarchitecture,notonlyhasaverygooddevelopmentanddebuggingenvironment,butalsosupportsavarietyofscalableuserexperience,includingrichgraphicalcomponents,multimediasupport,andpowerfulbrowser.Therefore,forsoftwareprofessionalsis,Androidplatformhasunlimitedappeal.BaiduMapasthefirstonlinemap,allkindsofdatainformationisthemostcomprehensiveandaccurate,thissystemthroughtheBaiduMapApidesignonetoachieveapositioning,navigationandtrafficinformationandmorefeaturesforonlinenavigationsoftware.IntheAndroiddeviceisagooduserinterface,speedofresponse,anduserexperience.KeywordsSmartphoneAndroidBaiduMapNavigation目录摘要 3Abstract 4第一章绪论 71.1. 研究内容 71.2. 研究意义 71.3. Android研究现状和发展趋势 81.4. GIS研究现状 91.5. 移动通信技术与GIS的结合发展 10第二章系统分析 112.1. 研究目标 112.2. 需求分析 112.3. 性能分析 11第三章系统开发和运行环境 123.1. Android开发环境介绍 123.2. Android开发平台搭建 123.3. BaiduMapSDK介绍 133.4. BaiduMap开发环境集成 143.5. 系统运行环境 18第四章系统设计 194.1. 用户界面设计 194.2. 数据源设计 224.3. 系统流程图 24第五章系统开发 255.1. 登陆功能开发 255.1.1. 登陆界面开发 255.1.2. 登陆功能实现 255.2. 地图加载开发 265.2.1. 地图加载界面开发 265.2.2. 地图加载功能实现 275.3. 定位功能开发 285.3.1. 定位功能界面开发 285.3.2. 定位功能实现 295.4. 交通状况功能开发 305.4.1. 交通状况界面开发 3065.4.2. 交通状况功能实现 315.5. 卫星云图功能开发 325.5.1. 卫星云图界面开发 325.5.2. 卫星云图功能实现 335.6. 城市定位功能开发 345.6.1. 城市地位界面开发 345.6.2. 城市定位定位功能 355.7. 模糊查询功能开发 365.7.1. 模糊查询界面开发 365.7.2. 模糊查询功能实现 375.8. 周边查询功能开发 385.8.1. 周边查询界面开发 385.8.2. 周边查询功能实现 39第六章系统测试 42总结 48参考文献 49致谢 50第一章绪论7绪论研究内容了解java语言的语法和特点,熟悉java语言的适用方向并独立搭建java语言的开发环境,学会使用java进行项目开发;了解并熟悉android操作系统,独立搭建android开发环境,学习并掌握android的项目开发;了解并熟练使用baiduapi,在android开发环境下集成baiduapi的jar包,运用baiduapi实现地图加载、漫游、查询等功能。研究意义当今社会,手机己经成为人们工作生活中必不可少的一项通讯和娱乐工具。随着手机的不断更新,手机的各种高层服务和应用层出不穷。其中,手机导航服务,是一项新兴且有广阔市场和应用价值的业务,尤其是基于位置的网络地图服务近年来备受人们关注。它利用移动终端的定位技术,通过移动通信网络与手机地图应用服务器之间的互联通信,提供给客户各种与位置相关的信息服务,方便了用户的出行。Android平台支持或网络定位的应用开发,并提供给普通开发者非常灵活的展示与控制功能,这为人们在手机上设计与实现地图服务提供了便捷灵活的开发平台。随着计算机和定位技术的飞速发展,全球定位系统(GPS)和地图服务得到了更广泛的重视和应用,将地图有效地与位置定位技术相结合,应用前景十分广阔。据统计,人们的日常生活中,有80%的信息是与位置相关的,然而为了寻找某个地点,人们常常需要耗费大量的精力,所以伴随着现代生活节奏的不断加快,实时的地理位置信息正在成为人们最渴求的信息之一。目前的地图服务主要是以单机或者Web的方式实现,不适合身处外地的用户使用,给用户的出行带来了不便。而手机地图服务的便携性和数据的实时性很好的解决了这一问题,因此,设计手机地图服务的应用具有非常实用的价值。另一方面Baidu于2007年11月推出了一款开源的移动终端软件平台——吉林建筑大学毕业设计(论文)8BaiduMap,为普通开发者提供了非常灵活的BaiduMap展示与控制功能。同时,由于BaiduMap的免费性和Android平台的开源性,能够有效降低开发成本,使每个用户自由的获取信息,这也为手机地图服务的普及做出了重要贡献。本人毕业设计的论题为《基于android系统的电子地图加载与实现》正是基于Android平台开发的,采用的网络地图BaiduMap,该系统可以用来浏览城市的地图,并能对其放大、缩小和移动,同时利用GPS定位技术,实现了自我定位、位置查找和路径跟踪等功能,满足了手机用户基本的地图导航服务需求。Android研究现状和发展趋势据Gartner最新数据显示,2010年第二、三季度全球智能手机销售继续大幅增长,其中第三季度安卓占全球智能手机市场的25.5%,仅次于塞班,成为第二大智能手机系统。2010第二、三季度与去年同期相比,增度分别是15.4%及22%,增势迅猛。而塞班系统较09年的市场份额,尽管终端销量有大幅度提升,但增势下滑10%,形势非常严峻。其他操作系统的表现则要平稳很多。图1-3-SEQ图1-3-\*ARABIC1安卓是首款开源代码的操作系统,采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改安卓的SDK软件包。系统的开源性使其具有良好的拓展性,一方面,为众多移动应用开发者提供了良好的系统性平台,有利于移动应用的集合;另一方面,终端厂商可以针对自身的特殊需要“定制化开发”。与此相比,尽管2010年2月,塞班基本完成开源工作,但由于代码臃肿,用户界面设第二章系统分析第三章系统开发与运行环境13计缺失,塞班的开源并无实际意义,错失发展良机。据Informa预测,2012年,安卓手机销量将超过诺基亚塞班手机,届时安卓将成为全球最大的智能手机平台。谷歌表示目前安卓手机每日平均激活量为20万部,销售速度加速上涨。我们认为,安卓在全球市场的成长壮大,塞班市场份额不断下跌已成不争事实。安卓操作系统发展迅猛主要得益于免费、开源和良好产业运作策略,这三点为安卓在智能手机市场赢得更多的发展机遇。系统的免费让更多的厂商加入,推动了份额的上升;代码的开源让更多的开发者进入应用开发;应用的丰富吸引了更多用户选择,这也是谷歌值得众多厂商学习的地方。此外,谷歌通过OHA联合众多厂商进行系统研发,不断更新版本,将系统应用推广到更多的终端产品中,确保用户体验持续改善。GIS研究现状世纪90年代以来,由于计算机技术的不断突破以及其它相关理论和技术的完善,GIS在全球得到了迅速的发展。在海量数据存储、处理、表达、显示及数据共享技术等方面都取得了显著的成效,其概括起来有以下几个方面:①硬件系统采用服务器/客户机结构,初步形成了网络化、分布式、多媒体GIS;②在GIS的设计中,提出了采用“开放的GIS环境”的概念,最终以实现资源共享、数据共享为目标;③高度重视数据标准化与数据质量的问题,并已形成一些较为可行的数据标准;④面向对象的数据库管理系统已经问世,正在发展称之为“对象--关系DBMS(数据库管理系统);⑤以GIS为核心的“3S”技术的逐渐成熟,为资源与环境工作提供了空间数据新的工具和方法;⑥新的数学理论和工具采用GIS,使其信息识别功能、空间分析功能得以增强等等。在GIS技术不断发展下,目前GIS的应用已从基础信息管理与规划转向更复杂的区域开发、预测预报,与卫星遥感技术相结合用于全球监测,成为重要的辅助决策工具。据有关部门估计,目前世界上常用的GIS软件己达400多种国外较著名的GIS软件产品有Auotodesk系列产品、Arc/Info、MapInfo及其构件产品、Intergraph、Microstation等,还有Web环境下矢量地图发布的标准和规范,XML、GML、SVG等等。我国GIS软件研制起步较晚,比较成熟的测绘软件主要有南方CASS,MapGIS,GeoStar,SuperMap等。尽管现存的GIS软件很多,但对于它的研究应用,归纳概括起来有二种情况:一是利用GIS系统处理用户的数据;二是在GIS的基础上,利用它的开发函数库二次开发用户专用的GIS软件。目前已成功应用包括资源管理、自动制图、设施管理、城市和区域规划、人口和商业管理、交通运输、石油和天然气、教育、军事等九大类别的一百多个领域。在美国及发达国家,GIS的应用遍及环境保护、灾害预测、城市规划建设、政府管理等众多领域。近年来,随着我国经济建设的迅速发展,加速了GIS应用的进程,在城市规划管理、交通运输、测绘、环保、农业等领域发挥重要的作用,取得了良好的经济效益和社会效益。移动通信技术与GIS的结合发展WAP/WML技术作为无线互联网领域的一个热点,已经显示了其巨大的应用前景和市场价值。WAP柳ML技术与GIS技术的结合产生了移动GIS(Mobile
GIS)应用和无线定位服务LBS(Location——basedServices)。通过WAR/WML技术,移动用户几乎可以在任何地方、时间获得网络提供的各种服务。无线定位服务将提供一个机会使GIS突破其传统行业的角色而进人到主流的IT技术领域里。大多数的分析家都认为,到2010年,无线网络将成为全球数据传送的主要途径。GIS的未来将会由其机动性所决定。当前用于地理信息交互的语言还不足以完成真正的“设备无关接口”的互操作。各种移动设备对于从地理信息服务器所获得的信息,其表现方式是各不相同的,用户输人方式也不相同。因此,对于不同的移动设备需要一种统一的标记语言。无线定位服务将提供一个机会使GIS突破其传统行业的角色而进人到主流的IT技术领域里:大多数的分析家都认为,到2010年,无线网络将成为全球数据传送的主要途径。GIS的未来将会由其机动性所决定。
系统分析研究目标了解Android应用程序的设计和开发过程;使用BaiduAPI进行导航软件的开发。需求分析随着信息化建设的飞速发展,人们的需求也不断地提高,对导航系统的需求也在持续增加。与此同时,iOS、Android、WindowMobile等智能手机系统的发展,使手机已不再只有简单的通讯功能,其强大的可扩展性为用户提供了用手机进行各类娱乐活动、完成各项工作任务的可能,导航软件也成为智能手机的标准配备。再加上智能手机也已经成为了人们生活的一部分,能在手机端实现一款导航软件将会给出行或旅游的朋友们带来诸多的方便。从上面的描述中可以基本了解软件的功能需求:启动AppWidget应用程序,登录系统;地图界面:可查看的地图信息、平移、缩放、查看当前用户位置;模糊查询:根据用户输入信息查询目的地,视野平移到目的地;周边查询:根据城市信息在一定范围内查询并显示若干的目的地;路况信息:显示当前的交通状况;卫星云图:通过卫星影像查看目的地真实场景;性能分析操作简单、界面大方美观;程序响应速迅速、安全性高、信息处理速度快;地图信息详细、准确,并且支持离线地图;
系统开发和运行环境Android开发环境介绍Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Java语言进行开发,还应该有由SUN公司提供的JavaSDK(其中包括JRE:JavaRuntimeEnvironment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的AndroidSDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发:WindowsXP32位操作系统;JavaJDK1.6;Eclipse3.8;AndroidSDK;ADT。BaiduMapAPIforAndroidv2.1.1;Android开发平台搭建Android开发平台搭建步骤:①首先到/downloads/下载Eclipse集成开发环境并且解压,这里推荐下载JavaEE集成版本,可以为平台的搭建省下不少工作。接着再去/javase/downloads/index.jsp站点下载SDK后安装,下载/android/android-sdk-windows-11.5_r1.zip,AndroidSDK1.5后解压。第一步下载工序就结束了。②双击Eclipse解压后目录中的eclipse.exe然后启动,选择Eclipse菜单中的Help->InstallNewSoftware->选项卡上的AvailableSoftware,点击右侧的“Add”输入/android/eclipse/后确定,然后在“Workwith”下拉菜单中选择刚才输入的网址。过一会就会出现一个DeveloperTools选项,勾上以后点击Next以后Eclipse会自动网上查找Android开发工具插件,然后找到AndroidDDMS和AndroidDevelopmentTools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse。③重启后选择Eclipse菜单中的Windows->Preferences在左侧的Android项目中SDKLocation中填入AndroidSDK解压后的目录,然后点击Apply。④在WindowsXP的系统变量中的path变量中添加一个值,该值指向解压后的AndroidSDK目录下的tools文件夹。BaiduMapSDK介绍百度地图AndroidSDK是一套基于Android1.5及以上版本设备的地图开发工具。您可以使用该套SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。百度地图AndroidSDK提供的所有服务是免费的,接口使用无次数限制。图3-3-SEQ图_3-3-\*ARABIC1BaiduMapSDK功能介绍:地图展示:包括2D图、卫星图、3D图地图展示。地图操作:提供平移、缩放、双指手势操作、底图旋转等地图相关操作。自定义绘制:提供自定义绘制点、线、面基本几何图形的功能。百度地图导航:提供调起百度地图Android版(v5.0及以上版本)导航功能。地图搜索:提供根据关键字进行范围检索、城市检索和周边检索。且支持LBS云检索用户自有数据。详情查询:提供餐饮类的POI的详细信息查看(Place详情)。线路规划:提供公交、驾车和步行三种类型,多种方案(不含地铁、时间优先、最少换乘、最少步行)的线路规划。地理编码:提供地址信息与坐标之间的相互转换。位置标注:提供一个或多个POI位置标注,且支持用户自定义图标。实时路况:提供城市实时交通路况信息图。离线地图:提供离线地图功能,可节省用户流量。定位:采用GPS、WIFI、基站、IP混合定位模式,请使用Android定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。BaiduMap开发环境集成开发工具Android开发工具有很多,开发者可根据自己的喜好进行选择。百度推荐开发者使用Eclipse作为自己的开发工具。工程配置首先:在工程里新建libs文件夹,将开发包里baidumapapi_v2_1_1.jar拷贝到libs根目录下,将libapp_BaiduMapApplib_v2_1_1.so和libvi_voslib.so拷贝到libs\armeabi目录下(官网demo里已有这三个文件,如果要集成到自己的工程里,就需要自己添加),拷贝完成后的工程目录如下图所示;注:liblocSDK3.so和locSDK_3.1.jar为百度定位SDK所使用资源,开发者可根据实际需求自行添加。图3-4-SEQ图_3-4-\*ARABIC1然后:在工程属性->JavaBuildPath->Libraries中选择“AddExternalJARs”,选定baidumapapi_v2_1_1.jar,确定后返回。通过以上两步操作后,您就可以正常使用百度地图SDK为您提供的全部功能了,但是想要访问数据,使用BaiduMapAPI的控件还需在Manifest中添加使用权限及Android版本支持:<!--使用网络功能所需权限--><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permissionandroid:name="android.permission.INTERNET"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><!--SDK离线地图和cache功能需要读写外部存储器--><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><!--获取设置信息和详情页直接拨打电话需要以下权限
--><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"></uses-permission><uses-permissionandroid:name="android.permission.CALL_PHONE"></uses-permission><!--使用定位功能所需权限,demo已集成百度定位SDK,不使用定位功能可去掉以下6项--><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><permissionandroid:name="android.permission.BAIDU_LOCATION_SERVICE"></permission><uses-permissionandroid:name="android.permission.BAIDU_LOCATION_SERVICE"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><uses-permissionandroid:name="android.permission.ACCES_MOCK_LOCATION"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_GPS"/>添加屏幕及版本支持:<supports-screensandroid:largeScreens="true"android:normalScreens="true"android:smallScreens="true"android:resizeable="true"android:anyDensity="true"/><uses-sdkandroid:minSdkVersion="7"></uses-sdk>com.baidu.mapapi.map.MapView控件就是地图显示控件:在地图显示的Activity添加以下代码:<com.baidu.mapapi.map.MapViewandroid:id="@+id/bmapsView"android:layout_width="fill_parent"android:layout_height="fill_parent"android:clickable="true"/>在使用BaiduMapSDK是还有一个类比较重要—BMapManager,BMapManager需要一个密钥,密钥可以通过/map/android-mobile-apply-key.htm网址获得,在Activity中定义成员变量:BMapManagermBMapMan=null;MapViewmMapView=null;获得密钥后在onCreate方法中增加以下代码,并将您申请的Key替换“我的Key”:super.onCreate(savedInstanceState);mBMapMan=newBMapManager(getApplication());mBMapMan.init("我的Key",null);
//注意:请在试用setContentView前初始化BMapManager对象,否则会报错setContentView(R.layout.activity_main);mMapView=(MapView)findViewById(R.id.bmapsView);mMapView.setBuiltInZoomControls(true);//设置启用内置的缩放控件MapControllermMapController=mMapView.getController();//得到mMapView的控制权,可以用它控制和驱动平移和缩放GeoPointpoint=newGeoPoint((int)(39.915*1E6),(int)(116.404*1E6));//用给定的经纬度构造一个GeoPoint,单位是微度(度*1E6)mMapController.setCenter(point);//设置地图中心点mMapController.setZoom(12);//设置地图zoom级别重写以下方法,以便BaiduMapSDK自行管理释放地图资源:@OverrideprotectedvoidonDestroy(){mMapView.destroy();if(mBMapMan!=null){mBMapMan.destroy();mBMapMan=null;}super.onDestroy();}@OverrideprotectedvoidonPause(){mMapView.onPause();if(mBMapMan!=null){mBMapMan.stop();}super.onPause();}@OverrideprotectedvoidonResume(){mMapView.onResume();if(mBMapMan!=null){mBMapMan.start();}super.onResume();}至此BaiduMapSDK的开发环境搭建已经基本完成,但要使用定位功能还需要到/map/geosdk-android-download.htm网址下载Android定位SDKv3.3的下关jar包,locSDK_3.3.jar放到libs目录下,liblocSDK3.3.so放到libs\armeabi目录下,定位功能的接口也就可以使用了。系统运行环境Android操作系统2.1以上;内存RAM512MB以上;存储空间512MB以上。第四章系统设计系统设计用户界面设计在运行程序菜单中点击baiduTest文件便可以baiduTest打开软件,如图4-1-1所示:图4-1-SEQ图4-1-\*ARABIC1之后进入到系统登录界面,登陆界面的设计十分简洁,用户输入框和密码输入框再加一个登录按钮组成,屏幕下方输入键盘会自动弹出,如图4-1-2所示:图4-1-SEQ图4-1-\*ARABIC2当用户名、密码都输入争取以后点击登陆按钮就来到了地图的主界面,进入主界面。主界面包括屏幕上方和下方的两个状态条,中间是地图显示区域,左侧中间偏上有一个功能按钮,这个按钮也就是系统查询等功能的入口,如图4-1-3所示:图4-1-SEQ图4-1-\*ARABIC3点击功能按钮,左侧会弹出功能菜单,通过功能菜单可以进行查询、搜索、定位等操作,如图4-1-4所示:图4-1-SEQ图4-1-\*ARABIC4以上是系统的主要功能界面,具体的功能会在系统开发和使用具体介绍。模块设计从功能需求上分析可以看出,整个应用程序应划分为4个模块,分别是程序启动、用户界面、后台服务和数据库适配器,各模块之间的关系如图4-2-1所示:图4-2-SEQ图_4-2-\*ARABIC1从模块结构图中不难看出,后台服务是整个应用程序的核心,主要是“数据获取模块”,负责交互信息和获取数据等。后台服务在程序启动时就由AppWidgetProvider启动,也可由用户界面通过startService()进行启动,启动后的后台服务将一直保持运行状态。地图数据和城市坐标数据是从手机中获得,而没有直接通过网络访问百度服务器数据。之所以这么实际,一方面可以避免因网络通信不畅造成界面失去响应;另一方面,可以节约流量。数据库适配器封装了所有对SQLite数据库操作的方法,用户界面和后台服务会调用它来实现数据库操作。在完成用户界面设计、数据库设计和模块设计后,至此程序设计阶段基本完成。数据源设计系统的数据来源主要有三个:SQLite数据源、离线的地图文件、百度数据。在这里我说明一下这种设计的原因:从系统本身来看,不使用离线地图文件是可以完成所用功能的,可以直接从百度的服务器获得数据。但是也就要考虑流量的问题,在无线网的覆盖范围以内就不考虑了,如果用手机本身的流量的话,流量就是个大问题了,就全国的地图数据而言就有一个多GB,概略全国地图也要30多MB,对于手机流量来说压力很大。所以我采用地图数据用离线地图文件加载,动态的数据从百度服务器获取的方案,离线的地图文件保存在sdcard上的/BaiduMapSDK/vmp/h/路径下,也就是/storage/sdcard1/BaiduMapSDK/vmp/h路径下,如图4-3-1所示:图4-3-SEQ图4-3-\*ARABIC1目录下的.dat文件便是离线地图文件,而DVUserdat.cfg文件是离线地图文件的索引文件,BaiduMapSDK是通过DVUserdat.cfg去找到离线地图文件。至于SQLite数据我使用了两张表去存储全国各省的名称、坐标,以及离线地图文所包含的城市名称、坐标、所归属的省,以下表格4-3-1和表格4-3-2是表的详细信息:sheng_table表:属性数据类型说明idinteger每个省的主键nametext省的名称jdDouble省中心经度坐标wdDouble省中心纬度坐标表格4-3-SEQ表格4-3-\*ARABIC1city_table表:属性数据类型说明idinteger城市的主键Nametext城市的名称JdDouble城市中心经度坐标WdDouble城市中心纬度坐标Sidinteger所归属的省的id表格4-3-SEQ表格4-3-\*ARABIC2因为系统的查询是以城市为单位,所以在SQLite数据下设计这两张表不光可以节省一定的流量,而且可以对查询提供方便。系统流程图图4-4-SEQ图_4-4-\*ARABIC1第五章系统开发系统开发登陆功能开发登陆界面开发系统打开以后,首先进入系统的登陆界面,如图5-1-1-1所示:图5-1-1-SEQ图_5-1-1-\*ARABIC1项目下layout目录下的app_login_act.xml文件就是登陆界面的实现文件,这个界面所使用的线性布局,控件从上到下分别是用户名的EditText和密码的EditText,然后是提交按钮,软键盘是通过项目根目录下AndroidManifest.xml设置的自动弹出,代码为:android:windowSoftInputMode="adjustPan|stateVisible";登陆功能实现登陆功能的业务逻辑实现是在com.example.baidutest.activity目录下的LoginActivity中实现的,实现代码为:privateOnClickListeneronClickListener=newOnClickListener(){@OverridepublicvoidonClick(Viewv){userTextView=(EditText)findViewById(R.id.at_login_et_phone_num);passwordTextView=(EditText)findViewById(R.id.at_login_et_password);if(userTextView.getText().toString().equals(NAME)){if(passwordTextView.getText().toString().equals(PASSWORD)){Intentintent=newIntent(LoginActivity.this,MainActivity.class);Activityactivity=LoginActivity.this;activity.startActivity(intent);}else{Toast.makeText(LoginActivity.this,"密码输入有误!",Toast.LENGTH_LONG).show();}}else{Toast.makeText(LoginActivity.this,"用户名不存在!",Toast.LENGTH_LONG).show();}}};地图加载开发地图加载界面开发系统登录成功以后接着进入系统的主界面,主界面包括上下两状态栏,中间地图显示窗口,左上方的菜单按钮,以及右下方的缩放按钮。如图5-2-1-1所示:图5-2-1-SEQ图_5-2-1-\*ARABIC1状态栏的功能显示定位的城市名称和坐标信息;地图窗口的功能是显示地图;缩放按钮的功能是控制地图的缩放级别;菜单按钮在点击以后会弹出菜单栏,菜单栏可以进行周边查询、模糊查询、提供当前路况、加载卫星云图等。主窗口布局文件为layout目录下的activity_main.xml文件。地图加载功能实现地图加载功能的业务逻辑实现是在com.example.baidutest.activity目录下的MainActivity中实现的,实现是在MainActivity的onCreate(BundlesavedInstanceState)写入实现代码,实现代码为:mBMapMan=newBMapManager(getApplication());mBMapMan.init(MAPMANAGERKEY,null);mMKSearch=newMKSearch();setContentView(R.layout.activity_main);this.mapLayout=newMapLayout(this);this.mapLayout.setmMKSearch(mMKSearch);this.mapLayout.setmBMapMan(mBMapMan);RelativeLayoutrel=(RelativeLayout)findViewById(R.id.Layout);RelativeLayout.LayoutParamsparams=newRelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT){};rel.addView(mapLayout,params);项目下MapLayout是地图实现的功能类,MapLayout类下的代码是主窗口地图加载代码:mMapView=newMapView(this.context);mMapView.setBuiltInZoomControls(true);MapControllermMapController=mMapView.getController();//得到GeoPointpoint=newGeoPoint((int)(39.915*1E6),(int)(116.404*1E6));mMapController.setCenter(point);//设置地图中心点mMapController.setZoom(12);//设置地图zoom级别mMapController.enableClick(true);this.addView(mMapView);定位功能开发定位功能界面开发定位功能是在地图显示窗口显示用户当前位置,图5-3-1-1是用为在主窗口显示:图5-3-1-SEQ图_5-3-1-\*ARABIC1图上蓝色箭头就是用当前位置。定位功能实现项目中MapLayout类中的myLocation()方法实现地位功能的方法,myLocation()会在MapLayout的构造方法调用,以下是myLocation的实现代码:MyLocationOverlaymyLocationOverlay=newMyLocationOverlay(mMapView);LocationDatalocData=newLocationData();locData.latitude=39.945;locData.longitude=116.404;locData.direction=2.0f;myLocationOverlay.setData(locData);mMapView.getOverlays().add(myLocationOverlay);mMapView.refresh();mMapView.getController().animateTo(newGeoPoint((int)(locData.latitude*1e6),(int)(locData.longitude*1e6)));交通状况功能开发交通状况界面开发进入主界面以后点击左侧上方的菜单按钮,屏幕左侧会弹出菜单,如图5-4-1-1,2所示:图5-4-1-SEQ图_5-4-1-\*ARABIC1,2点击设置菜单栏,会弹出卫星云图、交通状况、地图重置三个功能按钮,点击交通状况右侧菜单栏会隐藏,地图上会显示当前的交通状况,其中绿色是畅通路段、黄色是繁忙路段、红色是拥挤路段,不过该功能必须有网络支持才能显示当前交通状况,如图5-4-1-3所示:图5-4-1-3交通状况功能实现项目下的MapLayout类中的privateOnClickListeneronClickListener=newOnClickListener()是菜单栏中按钮的监听事件,以下代码是监听事件处理代码:if(v==btnUseTraffic){setTrafficVisuable(TrafficVisuable);leftViewVisable();bottomChange(jiaotongzhuangkuang);}setTrafficVisuable(TrafficVisuable);是设置显示交通状况的方法,leftViewVisable();是根据当前菜单栏的显示状况控制控制当前菜单栏的显示和隐藏,bottomChange(jiaotongzhuangkuang);是改变底部状态栏的状态的方法,以下是setTrafficVisuable(TrafficVisuable);方法下的代码:publicvoidsetTrafficVisuable(booleanvisuable){if(ServiceConnection.ConnectionState(context)){TrafficVisuable=!visuable;mMapView.setTraffic(true);}else{Toast.makeText(this.context,"当前网络不可用!",Toast.LENGTH_LONG).show();}}卫星云图功能开发卫星云图界面开发进入主界面以后点击左侧上方的菜单按钮,屏幕左侧会弹出菜单,如图5-5-1-SEQ图_5-5-1-\*ARABIC1,2所示:图5-5-1-SEQ图_5-5-1-\*ARABIC2,2点击设置菜单栏,会弹出卫星云图、交通状况、地图重置三个功能按钮,点击卫星云图右侧菜单栏会隐藏,地图显示窗口会加载卫星云图,不过必须有网络支持,如图5-5-1-SEQ图_5-5-1-\*ARABIC3,4所示:图5-5-1-SEQ图_5-5-1-\*ARABIC4,4卫星云图功能实现项目下的MapLayout类中的privateOnClickListeneronClickListener=newOnClickListener()是菜单栏中按钮的监听事件,以下代码是监听事件处理代码:if(v==btnUseCache){setSatelliteVisuable(SatelliteVisuable);leftViewVisable();bottomChange(cityzuobian);}setSatelliteVisuable(SatelliteVisuable);是设置显示卫星云图的方法,leftViewVisable();是根据当前菜单栏的显示状况控制控制当前菜单栏的显示和隐藏,bottomChange(jiaotongzhuangkuang);是改变底部状态栏的状态的方法,以下是setSatelliteVisuable(SatelliteVisuable);方法下的实现代码:privatebooleanSatelliteVisuable=false;publicvoidsetSatelliteVisuable(booleanvisuable){if(ServiceConnection.ConnectionState(context)){mMapView.setSatellite(!visuable);SatelliteVisuable=!visuable;}else{Toast.makeText(this.context,"当前网络不可用!",Toast.LENGTH_LONG).show();}}城市定位功能开发城市地位界面开发进入主界面以后点击左侧上方的菜单按钮,屏幕左侧会弹出菜单,如图5-6-1-SEQ图_5-6-1-\*ARABIC1,2所示:图5-6-1-1,2点击城市菜单栏,会弹出中国各个省的名称功能按钮,每页有9个功能按钮,左右可以滑动,点击某一个功能按钮会弹出列表,列出归属该省的城市名称,选择某一个城市的名称,接下来点击确定按钮,菜单栏隐藏,屏幕的视野平移到选中城市的中心,顶部和底部的菜单栏信息也会变为该城市的信息,如图5-6-1-SEQ图_5-6-1-\*ARABIC3,4,5所示:图5-6-1-3,4图5-6-1-SEQ图_5-6-1-\*ARABIC5城市定位定位功能项目下的MapLayout类中的privateOnItemClickListenerItemClickListener=newOnItemClickListener()是城市菜单栏中按钮的监听事件,以下代码是监听事件处理代码:@OverridepublicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intarg2,longarg3){ViewGroupgroup=(ViewGroup)arg1;TextViewtextView=(TextView)shengName=(String)textView.getText();shengID=shengMap.get(shengName);Daodao=newDao(context);Objectobj=dao.selectBySid(shengID,newCityModel());createDialog(obj);}模糊查询功能开发模糊查询界面开发进入主界面以后点击左侧上方的菜单按钮,屏幕左侧会弹出菜单,如图5-7-1-SEQ图_5-7-1-\*ARABIC1,2所示:图5-7-1-SEQ图_5-7-1-\*ARABIC1,2屏幕上方的文本输入域就是模糊查询的相应控件,点击屏幕下方会弹出键盘,要搜索的信息比如说“长春”,点击键盘上的“搜索”,屏幕的视野会平移到长春市的位置,如图5-7-1-3,4所示:图5-7-1-3,4模糊查询功能实现项目下的MapLayout类中的init()注册了一个文本输入域的监听事件publicbooleanonEditorAction(TextViewv,intactionId,KeyEventevent);以下是onEditorAction的实现代码:if(actionId==EditorInfo.IME_ACTION_SEARCH){Stringconfig=txtSearch.getText().toString();Daodao=newDao(context);Objectobject=dao.selectModelByName(newShengModel(),config);if(object!=null){ShengModelmodel=(ShengModel)object;List<CityModel>list=(List<CityModel>)dao.select(model.getId(),newCityModel());clearLayers();mMapView.refresh();moveToMiddle();mMapView.getController().animateTo(newGeoPoint((int)(model.getWd()*1e6),(int)(model.getJd()*1e6)));shengTextView.setText(model.getName());shengName=model.getName();shiName=list.get(0).getName();shiTextView.setText(list.get(0).getName());zuobiao=model.getJd()+","+model.getWd();bottomChange(cityzuobian);}}周边查询功能开发周边查询界面开发进入主界面以后点击左侧上方的菜单按钮,屏幕左侧会弹出菜单,如图5-8-1-SEQ图_5-8-1-\*ARABIC1,2所示:图5-8-1-SEQ图_5-8-1-\*ARABIC1,2点击附近菜单,会弹出一系列的功能按钮,每个功能按钮提供系统下的某一类地物,点击其中一个按钮,系统会根据所定位的城市进行显示周边一定范围的地物,并把10个POI绘制在地图上。屏幕下方的状态栏也会变化为显示当前页数,通过左右按钮可以进行分页显示,如图5-8-1-3,4所示:图5-8-1-SEQ图_5-8-1-\*ARABIC3,4周边查询功能实现项目下的MapLayout类中的privateOnClickLi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初改保安考试试题及答案
- 2026三年级数学下册 小数价值引领
- 2026三年级数学下册 位置与方向全面发展
- 2026二年级数学下册 数学广角专项
- 综合素养考试题库及答案
- 2026二年级数学 北师大版儿童乐园情境体验
- 培训学校奖惩制度制度
- 小学数学二年级奖惩制度
- 九小场所消防安全制度
- 电力安全奖惩制度范本
- 【高分复习笔记】田麦久《运动训练学》(第2版)笔记和课后习题详解
- 遗传的基本定律
- 《数字图像与视频处理》第9章 图像与视频的质量评价PPT
- 碳九MSDS安全技术说明
- GB/T 24736.4-2009工艺装备设计管理导则第4部分:工艺装备验证规则
- GB/T 1936.1-2009木材抗弯强度试验方法
- 中国图书馆分类法简表
- 统筹方法平话及补充(全)华罗庚
- 关节脱位患者的护理-关节脱位患者的护理(外科护理ppt)
- 经皮肾镜碎石术并发脓毒血症的风险与防治
- 商务接待礼仪课件
评论
0/150
提交评论