登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

基于IOS的户外线路分享APP设计与实现毕业论文

 2020-02-23 06:02  

摘 要

在户外运动越来越风靡的当下,市场上出现了越来越多的各种户外运动APP。本课题基于iOS操作系统设计了一款关于户外路线分享的App,通过导入高德地图组件、定位、路线跟踪等功能以及leancloud提供的服务器服务,对iOS系统上的用户定位和户外路线记录相关技术进行了研究。作为一款户外路线分享的APP,主要包括以下功能:

1)用户登录注册:用户可注册账号、登录账号、修改个人信息。

2)户外路线记录与分享:通过导入高德地图SDK,来记录用户的户外路线,并可以分享给其他户外运行爱好者。

3)户外路线读取:用户可以读取保存于本地的户外路线记录的数据。

4)户外路线循迹:用户读取路线数据后,可以进行户外路线的循迹功能,将路线进行回放。

此外,对系统进行了详细的需求分析以及整体框架设计、功能模块设计,并对系统进行功能测试以及非功能测试。所设计的APP达到了毕业设计任务书的要求。

关键词:iOS;户外路线;地图定位;路线记录;路线循迹

Abstract

Nowadays,outdoors is becoming more and more popular.There are more and more apps about outdoors on the market. This topic which is based on iOS operating system designed an outdoor route sharing app. The system uses the introduction of Amap components, positioning, route tracking and the database service provided by leancloud. This topic researches on user positioning and outdoor route recording related technology on iOS system. As an outdoor route sharing app, it mainly includes the following functions:

  1. User Login Registration: The user can register an account, login an account, and change personal information.
  2. Recording and sharing outdoor route: Recording the user's outdoor driving route by using the Amap SDK and the positioning function and sharing outdoor driving route with others.
  3. Reading outdoor route: Users can read data stored in the local outdoor route records.
  4. Tracking outdoor route: When the user reads the route data, the outdoor route tracking function can be used to play back the route.

In addition, this topic has carried on the detailed demand analysis to the system as well as the overall framework design and the functional module design.And The system is functionally tested and non-functionally tested.The APP that has been designed has met the requirements of the graduation design task book.

Key Words:iOS,outdoors,location,route records, outdoor route

目 录

第1章 绪论 1

1.1 需求分析 1

1.1.1研究背景 1

1.1.2设计任务 1

1.1.3可行性分析 2

1.2相关技术 2

1.2.1 iOS简介 2

1.2.2 Object-C语言 2

1.2.3 Xcode开发环境 3

1.2.4 高德地图 3

1.2.5 MVC架构 3

1.2.6 技术重难点 3

1.3进度安排 4

第2章 总体设计 5

2.1系统总体设计 5

2.2系统模块划分 5

2.3系统结构设计 6

2.4数据存储设计 7

2.5系统设计细节 8

2.5.1开发环境的配置 8

2.5.2在线地图设计 9

2.5.3路线绘制设计 9

2.5.4用户信息设计 10

第3章 代码实现 11

3.1登录注册功能实现 11

3.1.1登录注册界面搭建 11

3.1.2登录功能实现 11

3.1.3注册功能实现 12

3.2户外路线记录功能实现 12

3.2.1 添加地图组件 14

3.2.2地图定位功能实现 14

3.2.3路线绘制功能实现 14

3.2.4路线纠偏功能实现 15

3.3历史路线功能实现 16

3.3.1历史路线的存储 16

3.3.2历史路线的删除 17

3.3.3历史路线的回放循迹 17

第4章 系统测试 18

4.1程序发布 18

4.2功能性测试 18

4.2.1登录注册功能测试 18

4.2.2路线记录功能测试 19

4.2.3历史路线测试 20

4.2.4路线循迹测试 20

4.3非功能性测试 21

4.4兼容性测试 21

第5章 总结与展望 23

5.1总结 23

5.2展望 24

参考文献 25

致 谢 26

第1章 绪论

1.1 需求分析

1.1.1研究背景

随着社会的不断发展以及人们生活水平提高,户外出行被越来越多的人所青睐,研究表明,“一个国家或者地区的人均GDP高于5000美元时,户外旅游便会进入大众日常普遍消费阶段。2017年,我国的人均GDP超过8800美元,处于户外旅游消费需求爆发式增长时期。”[1]伴随着我国社会经济的发展、居民收入的增加、消费的提高、“带薪休假”的逐步落实,人们在户外旅行方面的花费越来越高,户外消费将成为一种刚需。[2]汽车的不断普及使得人们越来越不满足于传统的户外旅行方式,而会选择比较轻松休闲的自由行,在户外活动中可以更真实、更深入地了解当地的文化习俗、特色美食等,还可以认识来自不同地方同样喜欢自由行的驴友,一起分享旅行经验,随心而行。数据表明,户外自由行已经占据近80%的旅游市场,户外自由行成为了现在最流行的出行活动形式。

1.1.2设计任务

设计并实现一款基于iOS操作系统的驴友户外路线分享的应用型软件,本课题实现以下功能:

  1. 用户登录、注册功能:

用户注册登录后才可以使用APP的全部功能,用户通过填写用户名、密码、电子邮件以及电话号码来进行注册,此时系统将个人信息传输到leancloud服务器端进行存储,当用户登录时,系统发送请求到服务器端,验证成功后,便可登录使用APP,否则提示登录失败。

  1. 户外路线记录与分享:

本课题通过调用高德地图API,导入高德地图的iOS SDK,并调用iOS原本的地图框架MapKit以及定位框架CoreLocation来进行用户定位,不断跟踪用户,进行定位,通过定位点连接成平滑的曲线,从而达到记录驴友户外徒步路线的目的,同时用户可以将记录分享给其他驴友。

  1. 户外历史路线查询:

驴友每一次进行的户外路线都可以记录下来,用户可以查看自己已经记录的行程,并能在地图中显示出其当时的行程路线,每一次的路线已数据化的方式进行存储,用户可以进行删除操作。

  1. 循迹功能:

用户查看路线时,可以打开循迹功能,开启后,每一次的路线都会在地图上显示,同时能够进行对当时路线进行回放。

1.1.3可行性分析

现如今市场上有许多关于自由行的APP,如马蜂窝、途牛、同程、去哪儿等等,每个APP各有侧重,马蜂窝是专注于旅游攻略、游记分享的特定功能类APP,其他大多数属于平台类的,一个APP上汇集了多种APP产品,如酒店预订、团队预定、车票预定等旅游周边产业,六只脚则是记录行程,不管侧重如何,户外出行类APP已经成为用户的必备应用,基于此,设计一个记录行程的户外路线分享APP可满足用户需求。

在技术方面,要实现这样的一个APP并不困难,但是需要结合各个领域的开发技术,系统的实现重难点在于户外路线轨迹的绘制、记录、回放,要实现这些功能,需灵活应用高德地图所提供的各种API接口,在高德地图提供的SDK基础上,进行系统主要功能的开发实现。

1.2相关技术

1.2.1 iOS简介

iOS之前被称为iPhone OS,是一个由苹果公司开发的移动操作系统,iOS顾名思义,就是i化的操作系统(Operating System)[3],这是与苹果公司为MAC计算机提供的OS系统相对而言的,苹果公司的这些小型设备之所以能够进行复杂的处理、提供非常丰富的应用,正是因为其背后强大的iOS系统。

iOS系统的层次大致分为以下四层:

  1. Core OS层:iOS操作系统中最核心的部分,包括电源管理、文件系统、

安全、Sockets数据接口等等。

2)Core Service层:Core OS层之上,提供SQLite、URL等实用工具。

3)Media层:下面是Core Service层,可提供音频记录、OpenGL ES等。

4)Cocoa Touch层:提供Web视图、视图层次管理、Map Kit、控件等。

1.2.2 Object-C语言

Object-C是面向对象的一种开发语言,面向对象的应用都需要一个能够支持代码编译的环境,Cocoa Touch是Object-C语言在iOS系统中的编译环境, Object-C是一种特殊的C语言,简称OC,Object-C语言是C语言的超集,任何的C语言程序都可以通过Object-C编译器进行编译,在Object-C的类里面也可以随意地包含任何的C语言代码[2]。为了更方便地访问和设置类的成员变量的值, Object-C支持通过属性来默认为成员变量创建读取和设置器,并支持为属性进行特性标记,提供更加丰富的变量管理方法。

1.2.3 Xcode开发环境

Xcode是Apple独立开发的多功能IDE,包括编辑代码、运行程序、调试和应用程序打包等所有功能。Xcode只能在MacOS系统上运行,Xcode可以编写C、C 、Object-C和Java代码等代码类型,并能够使用MacOS支持的命令行工具、插件、框架和应用程序等功能,同时Xcode还能够使用各种插件来进行功能扩展,还具有颇多快捷键,可以有效提高开发人员的开发效率。

Xcode是一站式开发工具,基于StroyBoard等工具能够进行可视化编程同时具有集成Debug以及Testing的用于测试的工具,也可以进行代码自动保存以及支持开源代码管理,并支持应用打包以及发布到APP Store[3]

1.2.4 高德地图

高德公司是目前国内比较领先的地图定位、导航和定位服务解决方案供应商。开发人员可以使用高德开放平台提供2D、3D和卫星多种地图方式,无论使用哪种,都能够通过高德地图提供的API和SDK来完成地图的构建工作,同时能够进行地图的再开发[14]

1.2.5 MVC架构

MVC即为模型(model)-视图(view)-控制器(controller)的设计模式,MVC模式被用于将传统的输入、处理、输出功能聚集在一个逻辑结构中,包括以下三个层次:

1)模型:模型是指业务模型,用来表示应用程序核心以及相应的业务规则。

2)视图:视图是指用户界面,显示数据,包括与用户交互的窗口、控件等用户能够直接交互的部分。

3)控制器:在iOS系统中通常被称为视图控制器,能够进行视图和模型的相结合,用户输入后,控制器调用模型和视图来满足用户的需求。

1.2.6 技术重难点

要使用xcode进行基于iOS的户外路线分享的APP设计,需要基于MacOS系统,在Windows系统上使用需要虚拟机,在开发中使用高德地图的sdk,需要通过cocoapods来进行集成。课题的重难点在于用户位置定位以及路线记录和路线回放,iOS系统提供的地图框架能够进行定位等功能,如框架CoreLocation可以进行设备定位和航向,并且能够对地址进行地理编码,即确定经度和维度,同时结合高德地图提供的API,可以方便的使用地图组件中的定位功能和路线记录功能,而省略繁琐的底层细节。在记录定位点的过程中,因为定位会出现漂移、误差等情况,通过实时调用定位纠偏,可以将出现误差的轨迹点匹配到路上,使得形成的轨迹更加接近实际行驶的轨迹,计算出来的距离更加准确。在数据库搭建方面,采用leancloud服务端对用户信息进行存储管理。

1.3进度安排

  1. 第1--4周 阅读文献,学习技术
  2. 第 5 周 需求分析,系统架构设计
  3. 第 6 周 搭建主要界面
  4. 第 7 周 数据库设计
  5. 第8--9周 后端底层框架搭建,登录注册功能开发
  6. 第10--12周 主要户外路线记录、回放功能开发
  7. 第13--14周 功能测试,修改bug
  8. 第 15 周 兼容性测试,编写论文
  9. 第 16 周 论文提交,整理资料,进行答辩

总体设计

2.1系统总体设计

本课题设计了一款基于iOS系统的户外路线分享app,满足了户外爱好者的需求,用户进行注册登录后,便可使用系统,进行地图浏览,开启定位功能并开始记录行程,同时用户可以查询历史路线记录,点击开启循迹功能,并能进行删除操作。系统流程图如图2.1所示:

开始

注册

登录

主界面

用户信息

地图定位

注销

更改信息

路线记录

历史路线

路线回放

显示路线

路线分享

图2.1系统总体流程图

2.2系统模块划分

户外路线分享系统主要由地图查看模块、路线历史记录与分享模块、路线回放模块以及用户模块四个模块来实现,如图2.2所示:

图2.2系统功能模块

系统主模块是整个系统的入口,主要通过创建导航和分页控制器来完成,系统的主界面主要是由storyboard搭建,通过UIViewController、TabbarViewController来构建整个系统。

地图查看、路线历史记录与分享、路线回放模块为课题的重点,通过CocoaPods来安装调用高德地图的SDK,包括地图SDK(AMap3DMap)和搜索功能SDK(AMapSearch),在地图界面控制器MainViewController中创建一个mapView对象,调用didUpdateUserLocation进行地图的定位追踪实时更新,调用didChangeUserTrackingMode使用户改变当前定位,通过按钮反应actionRecordAndStop进行轨迹的跟踪记录,通过方法queryProcessedTrace进行定位点纠偏,调用onFinished方法进行路线纠偏成功回调,并通过方法rendererForOverlay来绘制路线。历史路线记录采用UITableViewController来构建,通过自定义可重用的方式cell来进行户外路线相关信息的存储。用户模块主要实现的功能有:用户注册、登录、用户信息的更改及用户退出登录,用户注册时,使用正确的字符进行用户名、密码、Email、手机号的填写,注册后用户信息传输到leancloud服务端,用户在登录时,需将登录数据传输到服务端,若信息正确,则返回正确提示,便可进入主模块界面。

总体上,由这四大模块构成最终的户外路线分享系统,每一个模块都是独立而又有联系的,用户注册登录后可以从主界面进入到各个功能区,模块之间的耦合度比较低,实现了稳定性和连续性。

2.3系统结构设计

系统前端采用storyboard来进行搭建,地图模块通过cocoa pods导入高德地图SDK,服务器端通过导入LeanCloud SDK进行用户相关信息的存储。手机用户可以进行登录、注册以及地图定位、路线的记录和分享等功能。系统整体布局如图2.3所示:

图2.3系统整体布局图

在本课题设计时,首先利用storyboard对系统进行整体界面布局,继而进行逻辑设计。系统的核心是分页控制器,连接的两个UIViewController分别进行地图定位模块MapShowView的设计和用户信息显示UserShowView的设计,在分页控制器之前连接的两个控制器ViewController和RegisterViewController分别进行用户登录功能设计以及用户注册功能设计。

2.4数据存储设计

在iOS系统中,数据存储的方式有SQLite数据库、XML属性列表归档、FMDB、NSKeyedArchiver等。

本系统在进行路线记录数据的存储时,主要采用NSKeyedArchiver方式进行本地化存储。

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图