微信小程序入门之指南针


Posted in Javascript onOctober 22, 2020

微信小程序入门案例——指南针,供大家参考,具体内容如下

涉及技术:获取地理位置、监听指南针角度

目录结构:

微信小程序入门之指南针

pages\index\index.js

Page({
 
 /**
 * 页面的初始数据
 */
 data: {
 rotate:0,
 degree:'未知',
 direction:'',
 lat:0,
 lon:0,
 alt:0
 },
 
 /**
 * 生命周期函数--监听页面加载
 */
 onLoad: function (options) {
 var that = this;
 wx.getLocation({
 altitude: true,
 success:function(res){
 that.setData({
  lat:res.latitude.toFixed(2),
  lon:res.longitude.toFixed(2),
  alt:res.altitude.toFixed(2)
 })
 }
 })
 wx.onCompassChange(function(res){
 let degree = res.direction.toFixed(0);
 that.getDirection(degree)
 that.setData({
 rotate:360 - degree
 })
 })
 
 },
 /**
 * 判断方向
 */
 getDirection:function(deg){
 let dir = '未知';
 if(deg>=340||deg<=20){
 dir='北';
 }else if(deg>20&°<70){
 dir='东北';
 }else if(deg>=70&°<=110){
 dir='东';
 }else if(deg>110&°<160){
 dir='东南';
 }else if(deg>=160&°<=200){
 dir='南';
 }else if(deg>200&°<250){
 dir='西南';
 }else if(deg>=250&°<=290){
 dir='西';
 }else if(deg>290&°<340){
 dir='西北';
 }
 this.setData({
 degree:deg,
 direction:dir
 })
 },
 
 /**
 * 生命周期函数--监听页面初次渲染完成
 */
 onReady: function () {
 
 },
 
 /**
 * 生命周期函数--监听页面显示
 */
 onShow: function () {
 
 },
 
 /**
 * 生命周期函数--监听页面隐藏
 */
 onHide: function () {
 
 },
 
 /**
 * 生命周期函数--监听页面卸载
 */
 onUnload: function () {
 
 },
 
 /**
 * 页面相关事件处理函数--监听用户下拉动作
 */
 onPullDownRefresh: function () {
 
 },
 
 /**
 * 页面上拉触底事件的处理函数
 */
 onReachBottom: function () {
 
 },
 
 /**
 * 用户点击右上角分享
 */
 onShareAppMessage: function () {
 
 }
})

pages\index\index.wxml

<view class="container">
 <image src="/images/1.jpg" mode="widthFix" style="transform:rotate({{rotate}}deg);"></image>
 <view class="status">
 <text class="bigTxt">{{degree}}°{{direction}}</text>
 <text class="smallTxt">北纬{{lat}}东经{{lon}}</text>
 <text class="smallTxt">海拔{{alt}}米</text>
 </view>
</view>

pages\index\index.wxss

.container{
 height: 100vh;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: space-around;
 color: #A46248;
}
image{
 width: 80%;
}
.status{
 display: flex;
 flex-direction: column;
 align-items: center;
}
.bigTxt{
 font-size: 30pt;
 margin: 15rpx;
}
.smallTxt{
 font-size: 20pt;
 margin: 15rpx;
}

app.js

App({
 
 /**
 * 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
 */
 onLaunch: function () {
 
 },
 
 /**
 * 当小程序启动,或从后台进入前台显示,会触发 onShow
 */
 onShow: function (options) {
 
 },
 
 /**
 * 当小程序从前台进入后台,会触发 onHide
 */
 onHide: function () {
 
 },
 
 /**
 * 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
 */
 onError: function (msg) {
 
 }
})

app.json

{
 "pages":[
 "pages/index/index"
 ],
 "window":{
 "backgroundTextStyle":"light",
 "navigationBarBackgroundColor": "#fff",
 "navigationBarTitleText": "指南针",
 "navigationBarTextStyle":"black"
 },
 "permission":{
 "scope.userLocation":{
 "desc":"你的位置信息将用于小程序指南针的效果展示"
 }
 },
 "style": "v2",
 "sitemapLocation": "sitemap.json"
}

运行截图:

微信小程序入门之指南针

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery1.6 使用方法三
Nov 23 Javascript
jquery获取当前点击对象的value方法
Feb 28 Javascript
jquery 设置style:display的方法
Jan 29 Javascript
js纯数字逐一停止显示效果的实现代码
Mar 16 Javascript
关于javascript sort()排序你可能忽略的一点理解
Jul 18 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
Oct 25 Javascript
ES6知识点整理之对象解构赋值应用示例
Apr 17 Javascript
微信小程序实现写入读取缓存详解
Aug 30 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
Dec 26 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
Mar 25 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
Dec 14 Vue.js
微信小程序实现拼图小游戏
Oct 22 #Javascript
Vue select 绑定动态变量的实例讲解
Oct 22 #Javascript
在Vue中使用Select选择器拼接label的操作
Oct 22 #Javascript
JavaScript 中判断变量是否为数字的示例代码
Oct 22 #Javascript
关于vue属性使用和不使用冒号的区别说明
Oct 22 #Javascript
jquery实现抽奖功能
Oct 22 #jQuery
Vue实现简单的留言板
Oct 23 #Javascript
You might like
探讨如何把session存入数据库
2013/06/07 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
javascript中将Object转换为String函数代码 (json str)
2012/04/29 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
Vue实现virtual-dom的原理简析
2017/07/10 Javascript
JavaScript实现Tab标签页切换的最简便方式(4种)
2020/06/28 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
python批量导出导入MySQL用户的方法
2013/11/15 Python
Python实现生成简单的Makefile文件代码示例
2015/03/10 Python
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
简单了解python模块概念
2018/01/11 Python
python实现爬取图书封面
2018/07/05 Python
使用python将图片按标签分入不同文件夹的方法
2018/12/08 Python
python模拟登陆,用session维持回话的实例
2018/12/27 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
解决Django连接db遇到的问题
2019/08/29 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
2020/01/18 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
python mock测试的示例
2020/10/19 Python
一套C#面试题
2013/10/09 面试题
教师节慰问信
2015/02/15 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
PHP 对接美团大众点评团购券(门票)的开发步骤
2021/04/03 PHP
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS