微信小程序入门之指南针


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矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
Jan 09 Javascript
JS获得选取checkbox整行数据的方法
Jan 28 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
Apr 13 Javascript
Google 地图控件集详解及实例代码
Aug 06 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
Mar 04 Javascript
详解在vue-cli中使用路由
Sep 25 Javascript
jqgrid实现简单的单行编辑功能
Sep 30 Javascript
React降级配置及Ant Design配置详解
Dec 27 Javascript
移动端(微信等使用vConsole调试console的方法
Mar 05 Javascript
vue踩坑记录之数组定义和赋值问题
Mar 20 Javascript
Vue拖拽组件列表实现动态页面配置功能
Jun 17 Javascript
Vue.js实现立体计算器
Feb 22 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+mysql一个名片库程序
2006/10/09 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
php使用session二维数组实例
2014/11/06 PHP
PHP面向对象中new self()与 new static()的区别浅析
2017/08/17 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
JavaScript中this详解
2015/09/01 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
React 条件渲染最佳实践小结(7种)
2020/09/27 Javascript
vantUI 获得piker选中值的自定义ID操作
2020/11/04 Javascript
python  文件的基本操作 菜中菜功能的实例代码
2019/07/17 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
物流仓储实习自我鉴定
2013/09/25 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
初中同学聚会感言
2014/02/11 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
民族学专业求职信
2014/07/28 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
MySQL 表锁定 LOCK和UNLOCK TABLES的 SQL语法
2022/04/18 MySQL
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers
LyScript实现绕过反调试保护的示例详解
2022/08/14 Python
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS