微信小程序之获取当前位置经纬度以及地图显示详解


Posted in Javascript onMay 09, 2017

最近刚开始接触微信小程序,在弄懂其结构以及相关接口之后,准备着手实现一个小程序,功能包括--获取用户当前位置的经纬度,在地图上查看位置,通过地图获取不同位置的经纬度。

微信小程序的主体部分包括:

微信小程序之获取当前位置经纬度以及地图显示详解

新增页面需要在app.json进行配置:

"pages":[
  "pages/index/index",
  "pages/location/location",
  "pages/logs/logs"
 ]

通过在视图层调用bindtap与逻辑层中的方法匹配--实现页面跳转:

视图层

<view class="location" bindtap="locationViewTap">
  <button>获取用户当前位置</button>
 </view>

逻辑层

locationViewTap: function(){
  wx.navigateTo({
   url: '../location/location'
  })
 }

通过在视图层调用bindtap与逻辑层中的方法匹配--实现方法调用:

视图层

<button bindtap="mapViewTap" style="margin:10px">查看地图</button>
  <button bindtap="chooseMapViewTap" style="margin:10px">选择位置</button>

逻辑层

mapViewTap:function(){
    wx.getLocation({
     type: 'gcj02', //返回可以用于wx.openLocation的经纬度
     success: function(res) {
      console.log(res)
      wx.openLocation({
       latitude: res.latitude,
       longitude: res.longitude,
       scale: 28
      })
    }
   })
 }

有关地图位置的三个接口:

(1) wx.getLocation(OBJECT) 获取当前的地理位置、速度

success返回参数:

latitude 纬度,浮点数,范围为-90~90,负数表示南纬
longitude 经度,浮点数,范围为-180~180,负数表示西经
speed 速度,浮点数,单位m/s
accuracy 位置的精确度
   

(2) wx.openLocation(OBJECT)  使用微信内置地图查看位置

OBJECT参数说明:

参数 类型 必填 说明
latitude Float 纬度,范围为-90~90,负数表示南纬
longitude Float 经度,范围为-180~180,负数表示西经
scale INT 缩放比例,范围5~18,默认为18
name String 位置名
address String 地址的详细说明
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

(3) wx.chooseLocation(OBJECT) 打开地图选择位置

success返回参数:

name 位置名称
address 详细地址
latitude 纬度,浮点数,范围为-90~90,负数表示南纬
longitude 经度,浮点数,范围为-180~180,负数表示西经

实现效果

 利用getLocation获取当前位置的经纬度坐标,openLocation打开微信内置地图查看

微信小程序之获取当前位置经纬度以及地图显示详解 

微信小程序之获取当前位置经纬度以及地图显示详解  

利用chooseLocation选取位置,并将位置信息的经纬度实时响应显示

微信小程序之获取当前位置经纬度以及地图显示详解 

微信小程序之获取当前位置经纬度以及地图显示详解

注意事项:

(1) 利用getLocation()获得的地图参数信息只有两个

  微信小程序之获取当前位置经纬度以及地图显示详解  

利用chooselocation返回的参数如下:

          微信小程序之获取当前位置经纬度以及地图显示详解

(2) this.setData修改json里面的值

逻辑层中的json数据可以通过WXML文件{{json}}显示出来:

微信小程序之获取当前位置经纬度以及地图显示详解

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

Javascript 相关文章推荐
JavaScript 捕获窗口关闭事件
Jul 26 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
Dec 12 Javascript
jQuery基本选择器选择元素使用介绍
Apr 18 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
Dec 13 Javascript
Bootstrap CSS组件之导航条(navbar)
Dec 17 Javascript
基于ES6 Array.of的用法(实例讲解)
Sep 05 Javascript
BootStrap给table表格的每一行添加一个按钮事件
Sep 07 Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 Javascript
vue2.0 + ele的循环表单及验证字段方法
Sep 18 Javascript
vue使用laydate时间插件的方法
Nov 14 Javascript
vue + element-ui的分页问题实现
Dec 17 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
Apr 22 Javascript
JS中的数组转变成JSON格式字符串的方法
May 09 #Javascript
jQuery插件开发发送短信倒计时功能代码
May 09 #jQuery
JavaScrpt的面向对象全面解析
May 09 #Javascript
ES6正则表达式的一些新功能总结
May 09 #Javascript
Vuex和前端缓存的整合策略详解
May 09 #Javascript
基于JS实现限时抢购倒计时间表代码
May 09 #Javascript
js使用i18n实现页面国际化的方法
May 09 #Javascript
You might like
PHP的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
php分页示例分享
2014/04/30 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
PHP目录操作实例总结
2016/09/27 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
javascript的BOM
2016/05/03 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
浅谈vue项目打包优化策略
2018/09/29 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
Flask数据库迁移简单介绍
2017/10/24 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
python计算n的阶乘的方法代码
2019/10/25 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
python计算导数并绘图的实例
2020/02/29 Python
如何理解python中数字列表
2020/05/29 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
泰国第一的化妆品网站:Konvy
2018/02/25 全球购物
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
劳动实践课感言
2014/02/01 职场文书
双创工作实施方案
2014/03/26 职场文书
党的作风建设心得体会
2014/10/22 职场文书
2014年大学生工作总结
2014/11/20 职场文书
警示教育片观后感
2015/06/17 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技