[微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息
因为需要在小程序加个定位并加载对应城市信息
然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利于用户体验
我就不多说什么了,直接上代码
微信小程序获取用户定位信息并加载对应城市信息 wx.getLocation 腾讯地图小程序api 微信小程序经纬度逆解析地理信息
1 //加载腾讯位置服务js文件(必须)
//预加载内容
onLoad: function () { //调用腾讯地图sdk 添加腾讯地图key var demo = new qqmap({
key: '*****-*****-*****-*****-SY7PH-SMFTK'
}); //此声明最好不要写在 wx.getLocation方法内,this指代不同 var that = this;
wx.getLocation({
type: 'gcj02', //编码方式,
success: function (res) {
var latitude = res.latitude // wx.getLocation 获取当前的地理位置、速度 latitude(维度) longitude(经度)
var longitude = res.longitude
demo.reverseGeocoder({
//腾讯地图api 逆解析方法 首先设计经纬度
location: {
latitude: res.latitude,
longitude: res.longitude
},
//逆解析成功回调函数
success: function (res) {
getApp().globalData.cityname = res.result.address_component.city; //全局变量存放城市 res.result.address_component.city 获取解析之后地址中的城市
console.log("onLoad"); //wx.request 发起网络请求,类似于ajax
wx.request({
url: 'https://www.xxxxxxxxxx.com/home/index/xcx_index', //填写对应服务器地址
data: {
// cityid: getApp().globalData.cityid, //我这里需要提交的参数,这里我是把获取的城市发给后台,然后后台给我对应城市的数据json文件
cityna: getApp().globalData.cityna,
district: res.result.address_component.city,
},
header: {
"Content-Type": "applicatiSon/x-www-form-urlencoded"
},
method: "POST",
success: function (res) {
console.log(res.data.data);
//解析回调函数得到的json文件并一层一层的解析然后数据绑定到页面上
that.setData({
// 轮播图图片
imgurls: res.data.data.pics });
getApp().globalData.cityid = res.data.data.datacompany.cityid;
// this.data.pic_array_dq2[e.detail.value].name
}
});
· // 成功后提醒
wx.showModal({
title: '定位成功',
content: '当前城市:' + getApp().globalData.cityname,
});
},
fail: function (res) {
//失败的回调函数
// console.log(res);
},
complete: function (res) {
//完成之后的回调函数,不管是否成功
console.log("逆解析状态码:"+res.status); //res.status 获取状态码,为0代表解析成功,但是我们要考虑失败的兼容,可能用户并不愿意同意获取地理位置,所以不为0 的时候也要加载内容给个默认地址
if (res.status!=0){
wx.request({
url: 'https://www.cyzs97.com/home/index/xcx_index',
data: {
// cityid: getApp().globalData.cityid,
cityna: getApp().globalData.cityna,
district:"",
},
header: {
"Content-Type": "applicatiSon/x-www-form-urlencoded"
},
method: "POST",
success: function (res) {
console.log(res.data.data);
that.setData({
// 轮播图图片
imgurls: res.data.data.pics, });
getApp().globalData.cityid = res.data.data.datacompany.cityid;
// this.data.pic_array_dq2[e.detail.value].name
}
});
//提示用户失败可开启定位服务
wx.showModal({
title: '定位失败',
content: '定位失败,未授权获取当前位置或服务错误' ,
});
}
console.log("定位获取的:" + getApp().globalData.cityname);
}
});
}
});
},
当然最重要的不能忘记,需要配置服务器,只需安全域名设置,需要在微信公众平台添加域名地址 https://apis.map.qq.com
[微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息的更多相关文章
- 微信小程序-form表单-获取用户输入文本框的值
微信小程序-form表单-获取用户输入文本框的值 <input name='formnickname' class="textarea" placeholder=" ...
- 微信小程序开发之 下拉刷新,上拉加载更多
本文记载了如何在微信小程序里面实现下拉刷新,上拉加载更多 先开看一下界面 大致如此的界面吧. 这个Demo使用了微信的几个Api和事件,我先列出来. 1.wx.request (获取远程服务器的数据, ...
- Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息
转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...
- PHP版微信第三方实现一键登录及获取用户信息的方法
本文实例讲述了PHP版微信第三方实现一键登录及获取用户信息的方法.分享给大家供大家参考,具体如下: 注意,要使用微信在第三方网页登录是需要“服务号”才可以哦,所以必须到官方申请. 一开始你需要进入微信 ...
- 在命令提示符下,运行Java程序时,提示"找不到或无法加载主类"
小白:在命令提示符下,运行Java程序时,提示"找不到或无法加载主类". 大神:运行Java程序的作用是让Java解释器装载,检验并运行字节码文件(.class).因此,在运行Ja ...
- 登陆获取shell时的配置文件加载过程
最近遇到一台ubuntu服务器登陆时默认语言环境变量变成posix问题, 导致中文显示乱码,影响程序的正常运行 # locale LANG= LANGUAGE= LC_CTYPE="POSI ...
- 微信小程序~App.js中获取用户信息
(1)代码:主要介绍下获取用户信息部分 onLaunch: function () { // 展示本地存储能力 var logs = wx.getStorageSync('logs') || [] l ...
- 从微信小程序到鸿蒙js开发【13】——list加载更多&回到顶部
鸿蒙入门指南,小白速来!从萌新到高手,怎样快速掌握鸿蒙开发?[课程入口] 目录: 1.list加载更多 2.list回到顶部 3.<从微信小程序到鸿蒙js开发>系列文章合集 1.list加 ...
- uniapp 在h5和小程序上使用高德获取用户城市位置
开发文档 https://lbs.amap.com/api 错误状态 https://lbs.amap.com/api/webservice/guide/tools/info/ 虽然用的高德但是你还需 ...
随机推荐
- 重读源码,见证HashMap以及它的朋友们的骚操作
一.Getting Start Again and again,until you master it.早在接触java.util包的时候,我们都会去阅读ArrayList,甚至也会去阅读HashMa ...
- Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】
打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格 ...
- 如何将Excel导入到Mysql数据库中
1.在mysql中建一张和Excel结构一样的表,或者修改excel信息,将excel的结构与mysql中table保持一致,包括字段名称. 2.利用mysql客户端工具navicat进行导入. 步骤 ...
- leetcode-908-最小差值 I
题目描述: 给定一个整数数组 A,对于每个整数 A[i],我们可以选择任意 x 满足 -K <= x <= K,并将 x 加到 A[i] 中. 在此过程之后,我们得到一些数组 B. 返回 ...
- WebDriverAPI(4)
单击某个元素 采用元素id.click()方法即可 双击某个元素id.doubleClick 操作单选下拉列表 测试网页HTML代码 <html> <body> <sel ...
- Zookeeper--0100--简介说明
1.1-Zookeeper简介 什么是Zookeeper? Zookeeper是一个高效的分布式协调服务,它暴露了一些公共服务,比如命名/配置/管理/同步控制/群组服务等.我们可以使用ZK来实现比如达 ...
- 使用EntityFrameworkCore 连接 MySql
上篇文章介绍了如何在dotnetcore下使用Dapper连接MySql,这里再介绍使用使用EntityFrameworkCore 连接 MySql. 新建控制台项目,安装下面两个nuget包: In ...
- 【数组】3Sum
题目: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find al ...
- CentOS6.5安装php7+nginx+mysql实现安装WordPress
安装php7+nginx参考该博客http://blog.csdn.net/whatday/article/details/50645117 安装php7参考http://blog.csdn.net/ ...
- Cookie的格式及组成、页面间传参实例
做项目需要页面间参数传递,搜索了一下网上的回复,发现可以用cookie解决,借此学习cookie的格式及组成: Cookie由变量名和值组成,类似Javascript变量.其属性里既有标准的Cooki ...