首页 > 其他分享 > MSDE2 personal project

MSDE2 personal project

时间:2022-08-31 20:55:33浏览次数:111  
标签:project 函数 personal 更新 MSDE2 跑步 打卡 wx 页面

姓名:王思恩 学号:20020007070
姓名和学号? 王思恩,200023230
本项目属于哪门课程? 中国海洋大学22夏《移动软件开发》
项目名称? 跑步打卡小程序
博客地址? https://rpc.cnblogs.com/metaweblog/wang-si-en
Github仓库地址? https://github.com/w772552092/MSD-personal-project-code.git

一、简要介绍项目,典型用户和典型故事场景

1.项目介绍:

名称:跑步打卡小程序

选题原因:老师给定的浪漫的选题范围很广,我认为一个人能始终如一的坚持一件事也是一件很浪漫的事,很显然坚持跑步就是其中的一 种还对身体有好处,所以我就萌生了做一个跑步打卡的小程序。

具体功能:改小程序能实现确定用户所处位置,显示跑步具体路径、距离、和所用时间、可打卡记录跑步次数及每次打卡的时间,跑步的 距离和时间等信息

2.典型用户:喜欢跑步,经常跑步,想记录自己跑步历程的人士

3.典型故事场景:例如在现在的西海岸校区有一条临海的大道,对于想要边跑步边欣赏临海风光又有打卡需求的同学,小程序就派上了用 场。

二、当前完成情况

一中提到的功能都已实现,不过略显简陋

三、包括哪些页面,使用了哪些控件与技术

包括三个页面:主页、实现跑步功能的页面、打卡记录页面

屏幕截图 2022-08-29 163647

屏幕截图 2022-08-29 163737

使用了view,text等组件,核心组件是map

1.主页

原理和第一个小实验类似用wx:if 和wx:else控制是否登录

和第一个实验一样,获取用户权限,成功后显示头像、名字、和转到跑步页面、和打卡页面的按钮

转跳到两个页面的函数

2.跑步页面

分为两个视图一个显示四个功能按钮和里程数和时间,另一个显示地图

首先设置四个全局变量counTooGEtLocation是更新位置的计时器,startRun标识跑步状态0时不计时,1时为跑步状态开始计时

全局计时函数,每1秒更新一次时间,每5秒更新一次位置,每10ms增加更新两个计时变量一次

让时间格式化输出的函数

补零函数,当时间为一位数时在其前侧补零

根据两点的经纬度计算两点的距离,toRadians函数将角度转为弧度,lat1,lng1为第一个点的经纬度,lat2,lng2为第二个点的经纬度

meters里程time跑步用时间marks标记点covers覆盖物

开始跑步按钮事件处理函数,开始跑步就开始计时,并更新当前位置

暂停跑步函数

打开当前位置,返回gcj02格式的数据

更新时间函数

获取当前位置并更新相应数据的函数

屏幕截图 2022-08-30 141306

屏幕截图 2022-08-30 141314

确定打卡时间的函数

打卡函数,将记录存到缓存里面,将所有全部全局变量和局部变量归零重置

转跳到打卡记录页面

页面加载时调更新一次位置并开始计数

3.打卡记录页面

屏幕截图 2022-08-30 164357

读取缓存中的信息并存入到数组中,在页面进行循环显示

清空打卡记录,等于清空缓存中的内容

屏幕截图 2022-08-30 164708

四、测试及上线运行情况

红点标记的位置显示有一定卡顿,发现是wx.getLocation开启高精度定位会有延迟,关闭后发现定位有一定偏差,而wx.onLocationChange有同样的位置偏差问题。

微信图片_20220830193349 微信图片_20220830193353 微信图片_20220830193357

五、实际遇到的问题及解决方法

1.不知到如何计算跑步里程数,去网上搜索得到相关操作公式

2.调用wx.getLocation是总是不更新用户具体位置,上网查得在其内部不能直接通过this调用数据和函数,需要var that = this重新定义一下

3.通过网络学习如何获取当前时间

4.学习如何使用map组件

六、心得体会

学会了如何使用map组件和一些相关的api和函数去设计一个跑步打卡小程序,虽然实际使用体验不是很好,但我相信随着我的学习和成长,我可以做出更好地应用

标签:project,函数,personal,更新,MSDE2,跑步,打卡,wx,页面
From: https://www.cnblogs.com/wang-si-en/p/16640649.html

相关文章