我的编程空间,编程开发者的网络收藏夹
学习永远不晚

微信小程序开发之实现一个跑步小程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

微信小程序开发之实现一个跑步小程序

自己动手实现一个跑步小程序 用到的方法:wx.onLocationChange,监听实时地理位置变化事件,需结合 wx.startLocationUpdateBackgroundwx.startLocationUpdate使用。

地图组件

定义一个全屏的地图,地图配置项经纬度(longitudelatitude),缩放(scale),标记点(markers),路线(polyline)等

<view class="map">
    <map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="{{scale}}" markers="{{markers}}"
        polyline="{{polyline}}" style="width: 100%; height: 100%"></map>
</view>

地图配置项字段

data: {
    latitude: '',
    longitude: '',
    scale: 16,
    markers: [],
    polyline: [{
        points: [],
        color: '#FB8337',
        width: 5
    }]
},

当前位置

wx.getLocation获取当前位置,

// 获取当前位置
getNowLocation() {
    wx.getLocation({
        type: 'gcj02',
        isHighAccuracy: true,
        success: (res) => {
            this.setData({
                latitude: res.latitude,
                longitude: res.longitude,
            })
        }
    })
},

效果如图:

需在app.json中配置

  "permission": {
        "scope.userLocation": {
            "desc": "你的位置信息将用于小程序位置接口的效果展示"
        }
    },
      "requiredBackgroundModes": [
        "location"
    ],
    "requiredPrivateInfos": [
        "getLocation",
        "onLocationChange",
        "startLocationUpdate",
        "startLocationUpdateBackground"
    ]

效果如下:

点击允许,就可以看到当前位置了

开始跑步按钮

添加一个开始跑步按钮

<button bindtap="startRun" class="btn" type="primary">开始跑步</button>
.map {
    width: 100%;
    height: 100vh;
}

.btn {
    position: absolute;
    bottom: 100rpx;
    left: 0;
    right: 0;
    z-index: 1000;
}

GPS定位

点击开始跑步的时候,我们需要获取手机的GPS定位是否开启,开启后才能获取地图返回我们的坐标

// 判断手机定位是否开启 
checkGPS() {
    wx.getSystemInfo({
        success: (res) => {
            if (!res.locationEnabled) {
                wx.showModal({
                    title: '提示',
                    content: '请先开启手机GPS定位',
                    showCancel: false
                })
                return;
            }
        }
    })
},

开发者工具获取不到,只能用手机测试

设置前后台允许获取定位

wx.startLocationUpdate({
    success: () => {
        wx.onLocationChange((res) => {
            this.setData({
                latitude: res.latitude,
                longitude: res.longitude
            })
            wx.getSetting({
                success: (res) => {
                    wx.hideLoading()
                    if (!res.authSetting['scope.userLocationBackground']) {
                        wx.showModal({
                            title: '提示',
                            content: '为确保后台定位精确,请先设置 "使用小程序时和离开后允许" 再进行跑步',
                            showCancel: false,
                            success: function (res) {
                                if (res.confirm) {
                                    wx.openSetting()
                                }
                            }
                        })
                    } else {
                        this.running();
                    }
                }
            })
            wx.offLocationChange();
            wx.stopLocationUpdate();
        })
    },
})

开启前后台定位

// 开始前后台定位
wx.startLocationUpdateBackground({
    success: () => {
        draw();
        time();
    },
    fail: () => {
        wx.showToast({
            title: '后台定位开启失败',
            icon: 'none'
        })
    }
})

绘制路线

 let arr = this.data.polyline[0].points;
    wx.onLocationChange((res) => {
        if (dis > 0) {
            arr.push({
                latitude: res.latitude,
                longitude: res.longitude
            })
            totalDistance = Number(((totalDistance + dis) * 100).toFixed(2)) / 100;
        }
    }
    this.setData({
        'polyline[0].points': arr
    })
})

以上就是微信小程序开发之实现一个跑步小程序的详细内容,更多关于微信跑步小程序的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

微信小程序开发之实现一个跑步小程序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

微信小程序|基于小程序+云开发制作一个菜谱小程序

今天吃什么?这是一个让强迫症左右为难的问题,跟随此文基于小程序+云开发制作一个菜谱小程序,根据现有食材一键生成菜谱,省心又省力。 一、小程序 1. 创建小程序
2023-08-20

微信小程序开发之实现记账本

这篇文章主要为大家详细介绍了如何通过微信小程序开发一个简单的记账本,文中的示例代码讲解详细,感兴趣的小伙伴可以和小编一起学习一下
2023-01-13

微信小程序中怎么打开另一个小程序

今天小编给大家分享一下微信小程序中怎么打开另一个小程序 的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。查看官方文档主要方法名
2023-06-26

微信小程序开发之实现心情记事本

这篇文章主要为大家详细介绍了如何通过微信小程序开发一个简单的心情记事本,文中的示例代码讲解详细,感兴趣的小伙伴可以和小编一起学习一下
2023-01-11

微信小程序开发之实现摇色子游戏

这篇文章主要为大家详细介绍了如何通过微信小程序开发一个简单的摇色子游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以和小编一起学习一下
2023-01-28

微信小程序开发中如何实现仿电影影评小程序开发

这篇文章将为大家详细讲解有关微信小程序开发中如何实现仿电影影评小程序开发,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  首先如图建立文件夹和page页面  然后app.json页面更新代码如下:  { 
2023-06-26

编程热搜

目录