欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-26 11:42:25
在本文 微信小程序--获取用户地理位置名称(无须用户授权) 之前需要先看看 代码封装是在上文添加的。 准备 1、在网站申请key 2、在微信小程序后台把apis...

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

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

准备

1、在网站申请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%;
}

参考地址:


以上所述是小编给大家介绍的微信小程序-获取用户地理位置名称(无须用户授权)的方法详解整合,希望对大家有所帮助