微信小程序入门之指南针


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』限制Input只能输入数字实现思路及代码
Apr 22 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
Jul 01 Javascript
js Date概念详细介绍
Nov 22 Javascript
js中判断用户输入的值是否为空的简单实例
Dec 23 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
Jun 09 Javascript
JavaScript中的数组操作介绍
Dec 30 Javascript
javascript实现俄罗斯方块游戏的思路和方法
Apr 27 Javascript
快速掌握Node.js环境的安装与运行方法
Feb 16 Javascript
AngularJs  Creating Services详解及示例代码
Sep 02 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
Jul 21 Javascript
在小程序开发中使用npm的方法
Oct 17 Javascript
使用Vant完成通知栏Notify的提示操作
Nov 11 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
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
在Yii框架中使用PHP模板引擎Twig的例子
2014/06/13 PHP
PHP数组与对象之间使用递归实现转换的方法
2015/06/24 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
php use和include区别总结
2019/10/13 PHP
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
跟我学习javascript的循环
2015/11/18 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
python如何将图片转换为字符图片
2020/08/19 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
python 实现识别图片上的数字
2019/07/30 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
Python绘图实现显示中文
2019/12/04 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
基于FME使用Python过程图解
2020/05/13 Python
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
初三学生个人自我评定
2014/04/06 职场文书
公司董事长岗位职责
2014/06/08 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
工人先锋号申报材料
2014/12/29 职场文书
世界遗产导游词
2015/02/13 职场文书
创业计划书之奶茶店开店方案范本!
2019/08/06 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技