本文转载自csdn的加菲猫的狗,实现了微信小程序手动定位,选择位置:

很多小程序都有如下需求:

小程序打开后,以文字形式显示用户所在位置,如果用户觉得不准,可以打开地图,在地图上自己选择位置,选择完成后,显示的用户的位置会发生变化

点击地址选择地点

选择地点之后

下面不仅仅是源码,还希望通过源码尽量讲解小程序的相关知识:

视图index.wxml

{{address}}

view组件可用作父容器,也可以用来展示一段文本,text组件也可以用来展示文本,区别在于view中的文本不能选中。

{{}}是小程序中数据绑定的语法。在小程序中没有dom和bom,所以不能根据id等属性获取控件,只能通过数据绑定的方式。

在index.js中未变量addresss赋值,然后index.wxml中就可以自动更新,这与angular很像,但是,小程序中是单项绑定。

tap是一个触摸事件,小程序中使用bind或者catch方式绑定事件,其属性值是一个函数名称,这个函数在index.js中定义,当用户触摸此view时就会执行对应的函数

逻辑层 index.js

//引用腾讯地图API

var QQMapWX = require('../../libs/qqmap-wx-jssdk.js');

var qqmapsdk;

Page({

/**

* 页面的初始数据

*/

data: {

address: "",

src:""

},

/**

* 生命周期函数--监听页面加载

*/

onLoad: function (options) {

/*判断是第一次加载还是从position页面返回

如果从position页面返回,会传递用户选择的地点*/

if (options.address != null && options.address != '') {

//设置变量 address 的值

this.setData({

address: options.address

});

} else {

// 实例化API核心类

qqmapsdk = new QQMapWX({

//此key需要用户自己申请

key: 'MNXBZ-G5TWD-GYF42-HHZJL-2W2J3-PVBX4'

});

var that = this;

// 调用接口

qqmapsdk.reverseGeocoder({

success: function (res) {

that.setData({

address: res.result.address

});

},

fail: function (res) {

//console.log(res);

},

complete: function (res) {

//console.log(res);

}

});

}

}

index.js 中的所有代码都应该放在 page 函数中

其中 onLoad 函数是内置函数,大致相当于 js 中的window.onload函数。

如果是其他页面跳转过来,并且通过 问号的方式传递参数过来,可以使用options.参数名称获取对应的值。

qqmapsdk.reverseGeocoder

这里用到了腾讯地图小程序客户端API,上面的函数就是API中的一个,作用是提供由坐标到坐标所在位置的文字描述的转换,输入坐标返回地理位置信息和附近poi列表。具体的使用方法参见官网,这里就不做赘述了,官网地址:点击打开链接

调用成功之后获取地址并赋值给变量address

这里要注意,必须通过setData()函数设置变量的数据,视图中才可以更新

在地图中选择位置

如果用户觉得定位不准,可以点击 位置信息,打开地图页面,代码如下

onChangeAddress: function (e) {

wx.navigateTo({

url: "/pages/position/position"

});

}

wx.navigateTo函数用于跳转到其他页面,可以在url值后面以?参数名=参数值的方式传递参数

position.wxml:

map是小程序中的组件,用于显示地图信息,属性latitude和longitude用于设置地图的中心点

下面是 position.js 完整代码

var QQMapWX = require('../../libs/qqmap-wx-jssdk.js');

var qqmapsdk;

Page({

data: {

latitude: 0,//地图初次加载时的纬度坐标

longitude: 0, //地图初次加载时的经度坐标

name:"" //选择的位置名称

},

onLoad: function () {

// 实例化API核心类

qqmapsdk = new QQMapWX({

key: 'MNXBZ-G5TWD-GYF42-HHZJL-2W2J3-PVBX4'

});

this.moveToLocation();

},

//移动选点

moveToLocation: function () {

var that = this;

wx.chooseLocation({

success: function (res) {

console.log(res.name);

//选择地点之后返回到原来页面

wx.navigateTo({

url: "/pages/index/index?address="+res.name

});

},

fail: function (err) {

console.log(err)

}

});

}

});

wx.chooseLocation方法,会打开地图,并且默认以用户当前位置为中心点。并且会在下面展示周围一些地点列表,供用户选择,用户选择完地点后,点击 完成,会触发 其success参数指定的函数,可以通过参数res获取地点名称、经纬度等相关信息

在这里,获取当相关信息后跳转到主页,同时将用户选择的位置名称传递过去

在 index.wxml 中,有一段代码用来处理:如果用户在点击 完成 前没有选择任何位置,则继续显示当前位置,否则显示用户选择的位置。

/*判断是第一次加载还是从position页面返回 如果从position页面返回,会传递用户选择的地点*/

if (options.address != null && options.address != '') {

//设置变量 address 的值

this.setData({

address: options.address

});

} else {....}

php微信使用腾讯地图进行定位,微信小程序在腾讯地图上选择定位相关推荐

  1. 微信小程序使用腾讯地图进行路线规划,坐标转地址,逆地理编码,计算目的地跟自身定位的距离

    微信小程序使用腾讯地图 1.介绍腾讯地图 官方文档: https://lbs.qq.com/ 这里,我主要运用的是这几个api ,我在运用的过程中主要实现的功能有:地图路线规划.地址转坐标+计算距离. ...

  2. 腾讯地图小程序服务器配置,腾讯地图实现微信小程序地图定位教程

    前言 目前腾讯位置服务提供路线规划.地图选点.地铁图.城市选择器插件四款插件产品,本篇博客主要针对地图选点功能进行实现. 开通腾讯位置服务 2.登录进入小程序后台,选择 "开发 - 开发工具 ...

  3. uni-app微信小程序结合腾讯地图获取定位导航以及城市选择器

    目录 第一步:登录小程序公众平台==>设置==>第三方设置 第二步:登录腾讯地图申请属于自己小程序的key 第三步:找到腾讯地图的插件​​​​​​​ 第四步:添加插件与允许授权 第五步:使 ...

  4. 微信小程序接入腾讯地图sdk地图 用户自选位置。踩坑+代码实现

    采坑记录: 1.微信小程序对腾讯地图的支持好.拓展强,不建议使用其他地图 2.坐标问题** 高德地图与腾讯地图使用的是 GCJ02坐标系 3.使用微信小程序的内置方法的经纬度存在偏差.解决方案看下文 ...

  5. [微信小程序]小程序引入腾讯地图选点插件出现:未取得授权

    问题:小程序引入腾讯地图选点插件出现:未取得授权 在微信小程序引入腾讯地图选点插件:官方文档 1.微信小程序接入腾讯地图服务,申请Key 2.在 app.json 中添加 "plugins& ...

  6. uni-app开发微信小程序使用腾讯地图选点和城市选择器插件

    文章目录 前言 效果图 第一步.登录腾讯地图申请属于自己小程序的key 第二步.登录微信公众平台添加插件 第三步.引入插件包,配置定位允许授权 第四步.通过点击事件使用插件 第五步.拿到插件接口返回的 ...

  7. 腾讯小程序 java编写_微信小程序 使用腾讯地图SDK详解及实现步骤

    微信小程序 使用腾讯地图SDK详解及实现步骤 近期在做一款彩票服务类项目中用到了腾讯地图提供的小程序解决方案,拿来给大家分享一下! 使用起来非常简单,就是一些功能还有待完善. 官方文档:http:// ...

  8. 微信小程序 使用腾讯地图SDK详解及实现步骤

    信小程序 使用腾讯地图SDK详解及实现步骤 微信小程序JavaScript SDK: 官方文档:http://lbs.qq.com/qqmap_wx_jssdk/index.html 步骤: 1.申请 ...

  9. 微信小程序调用腾讯地图API进行驾车路线规划

    微信小程序调用腾讯地图API进行驾车路线规划 申请key 下载sdk 实现代码 遇到的问题 申请key 微信小程序的地图api是非常有限的,所以部分功能实现需要调用地图api.使用腾讯地图api过程如 ...

  10. 微信小程序之腾讯地图SDK获取当前城市位置信息

    例如:小程序首页要显示用户地区 需求:用户打开页面自动获取当前位置的定位,小程序wx.openLocation只能获取到经纬度,所以需要用腾讯地图SDK.. 1.引入当前页面js文件中. //qqma ...

最新文章

  1. 如何在windows下安装cygwin
  2. 如何以编程方式在Android上截屏?
  3. Go语言实战读书笔记
  4. python提示install无效_为什么是python设置.py给我“错误:选项installdir无法识别”错误?...
  5. clickhouse 航空数据_ClickHouse空间分析运用
  6. linux故障排除与修复(troubleshooting)
  7. 记录 Annotation processing is not supported for module cycles.
  8. android 属性动画实例,Android 属性动画Animator工具类代码案例
  9. drupal7 的安装方法
  10. umi脚手架搭建的项目_还在从零开始搭建项目?手撸了款快速开发脚手架!
  11. Python语言认识和实用工具(1)
  12. DHCP server 冒充及DOS攻击处理方案
  13. mysql服务启动失败原因
  14. B Start - 哔哩哔哩校招入职成长营
  15. 百度地图API获取经纬度实战
  16. java 读取小数位数_java如何获取一个double的小数位数
  17. 置信传播算法(Belief Propagation)简介
  18. win7系统 无法访问 Windows installer服务。Windows Installer 没有正确安装时
  19. 计算机硬件 软件和用户的关系,大家都知道计算机包含硬件和软件,那这两者之间区别是什么呢?...
  20. Linux命令 - zip命令

热门文章

  1. 固态硬盘数据如何恢复
  2. 头歌—练习-Java循环综合练习四之日历打印
  3. 洛谷-P1007-魔法少女
  4. 关于keras-yolov3-deepsort
  5. 用sk-learn实现新闻的分类预测(完整代码)
  6. 有一个多项式:Pn(x)=a0x+a1x+….+anx(n=10),它们的系数存放在一个一维数组中,编写程序,输入系数和x的值,计算并输出Pn(x)的结果。
  7. VGG为什么叫做VGG,VGG的由来
  8. 代码实现堆溢出、栈溢出、永久代溢出、直接内存溢出
  9. 联发科毫米波雷达解决方案芯片MT2706(Autus R10)
  10. 矩阵正定 matlab,MatLab的:CHOL矩阵必须是正定