微信小程序--获取用户地理位置名称(无须用户授权)的方法

 更新时间:2019年04月29日 11:13:50   作者:意外金喜  
这篇文章主要介绍了微信小程序-获取用户地理位置名称(无须用户授权)的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在本文 微信小程序--获取用户地理位置名称(无须用户授权) 之前需要先看看

微信小程序-获取用户session_key,openid,unionid - 后端为nodejs

代码封装是在上文添加的。

准备

1、在http://lbs.qq.com/网站申请key

2、在微信小程序后台把apis.map.qq.com添加进request合法域名

效果

添加封装

/**
 * 发起网络请求
 * @param {string} url 
 * @param {object} params 
 * @return {Promise} 
 */
 static request(url, params, method = "GET", type = "json") {
 console.log("向后端传递的参数", params);
 return new Promise((resolve, reject) => {
  let opts = {
  url: url,
  data: Object.assign({}, params),
  method: method,
  header: { 'Content-Type': type },
  success: resolve,
  fail: reject
  }
  // console.log("请求的URL", opts.url);
  wx.request(opts);
 });
 };
 /**
 * 获取用户中心位置经纬度
 * @param {ctx} name 
 */
 static getCenterLocation(name) {
 return new Promise((resolve, reject) => name.getCenterLocation({ success: resolve, fail: reject }));
 }

如果已经存在,则不用添加

js

let app = getApp();
let wechat = require("../../utils/wechat");
Page({
 onReady(e) {
 let mapCtx = wx.createMapContext('myMap');
 setTimeout(() => {
  mapCtx.moveToLocation();
 }, 1000);
 setTimeout(() => {
  this.getAddress(mapCtx);
 }, 2000);
 },
 getAddress(mapCtx) {
 wechat.getCenterLocation(mapCtx)
  .then(d => {
  console.log(d);
  let { latitude, longitude } = d;
  console.log("当前位置纬度", latitude, "当前位置经度", longitude);
  let url = `https://apis.map.qq.com/ws/geocoder/v1/`;
  let key = 'XXXXX-D6FAD-RSG4U-HBE6F-NVFNK-XXXXX';
  let params = {
   location: latitude + "," + longitude,
   key
  }
  return wechat.request(url, params);
  })
  .then(d => {
  console.log(d);
  console.log("当前地址", d.data.result.address);
  })
  .catch(e => {
  console.log(e);
  })
 }
 
})

html

<map id="myMap" show-location="true" scale="16" />

css

page{
 height: 100%;
}
#myMap{
 width: 100%;
 height: 100%;
}

参考地址:

https://mp.weixin.qq.com/debug/wxadoc/dev/component/map.html#map
https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-map.html

以上所述是小编给大家介绍的微信小程序-获取用户地理位置名称(无须用户授权)的方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • js的逻辑运算符 ||

    js的逻辑运算符 ||

    初次见到这样语句 a=a || [] 还有些纳闷,因为在其他语言中没见过有如此用法。
    2010-05-05
  • uni-app和原生小程序混合开发的具体实现过程

    uni-app和原生小程序混合开发的具体实现过程

    最近项目中遇到了一些功能需要与原生进行混合开发,所以下面这篇文章主要给大家介绍了关于uni-app和原生小程序混合开发的具体实现过程,需要的朋友可以参考下
    2022-07-07
  • 详解JavaScript是如何验证URL的

    详解JavaScript是如何验证URL的

    当开发者需要为不同目的以不同形式处理URL时,我们经常会借助于JavaScript。本文就为大家整理了JavaScript验证URL的方法,希望对大家有所帮助
    2023-02-02
  • javascript 日期时间 转换的方法

    javascript 日期时间 转换的方法

    javascript 日期时间 转换的方法,需要的朋友可以参考一下
    2013-02-02
  • JavaScript使用Proxy编写一个取值限制器

    JavaScript使用Proxy编写一个取值限制器

    最近一直在开发低代码平台的东西,由于项目里面东西有点多,取值或调用起来比较麻烦,使用本文就将使用Proxy编写一个取值限制器,需要的小伙伴可以参考下
    2023-12-12
  • 玩转JavaScript函数:apply/call/bind技巧

    玩转JavaScript函数:apply/call/bind技巧

    欢迎来到这篇关于JavaScript中apply、call、bind函数的指南,这里充满了实用技巧和深入理解,让你的编程之旅更加游刃有余,赶快翻开这个神秘的“魔法书”,让我们一起探索吧!
    2024-01-01
  • JS实现电脑虚拟键盘的操作

    JS实现电脑虚拟键盘的操作

    这篇文章主要为大家详细介绍了JS实现电脑虚拟键盘的操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • script标签中的async和defer详细说明与使用场景

    script标签中的async和defer详细说明与使用场景

    这篇文章主要介绍了script标签中的async和defer详细说明与使用场景,需要的朋友可以参考下
    2023-02-02
  • es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析

    es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析

    这篇文章主要介绍了es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用,结合实例形式分析了es6 class类静态方法,静态属性,实例属性,实例方法相关概念、原理、用法及相关操作注意事项,需要的朋友可以参考下
    2020-02-02
  • 小程序自定义弹出框效果

    小程序自定义弹出框效果

    这篇文章主要为大家详细介绍了小程序自定义弹出框效果,支持淡入淡出动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07

最新评论