微信小程序入门之指南针


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 相关文章推荐
JavaScript中使用Callback控制流程介绍
Mar 16 Javascript
JavaScript实现彩虹文字效果的方法
Apr 16 Javascript
jquery实现多屏多图焦点图切换特效的方法
May 04 Javascript
javascript操作cookie
Jan 17 Javascript
angular ng-repeat数组中的数组实例
Feb 18 Javascript
JavaScript手风琴页面制作
May 17 Javascript
js实现本地图片文件拖拽效果
Jul 18 Javascript
使用vue构建移动应用实战代码
Aug 02 Javascript
javascript按顺序加载运行js方法
Dec 01 Javascript
使用typescript开发angular模块并发布npm包
Apr 19 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
Nov 13 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
Jul 24 Javascript
微信小程序实现拼图小游戏
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
PHP实现一维数组转二维数组的方法
2015/02/25 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
子页向父页传值示例
2013/11/27 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
利用Javascript实现BMI计算器
2016/08/16 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
微信小程序返回上一页传参并刷新过程解析
2019/12/13 Javascript
深入理解redux之compose的具体应用
2020/01/12 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
建筑实习自我鉴定
2013/10/18 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
教师节老师寄语
2015/05/28 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python