美文网首页
小程序获取用户所在城市(使用云函数)

小程序获取用户所在城市(使用云函数)

作者: 超人鸭 | 来源:发表于2019-10-11 16:28 被阅读0次

这次超人鸭要讲的是,如何在小程序中获取用户所在的位置,得到城市名。
在小程序中,有个api可以获取到用户的地理位置:


image.png

但是这个api只能获取到当前位置的经纬度,并不能只能获取到具体的地理信息,比如城市名之类的,这时候,我们需要用到其他方法来解析经纬度,获取具体的地理信息,超人鸭用到的是百度地图的api,下面会详细介绍。
先一步一步来,调用小程序的api获取经纬度:

//在某个js里面
wx.getLocation({
  type: 'wgs84',  // 得到gps坐标
  success:(res) => {
    // 把得到的纬度经度传给下面的函数
    this.getCity(res.latitude, res.longitude)
  }
})

接下来是调用百度地图的api,进入百度地图开放平台,没有账户先注册一个,然后点击 “控制台”,然后点击 “创建运用”:

image.png
进入到这个页面后,选择应用类型,超人鸭本次介绍的是使用云函数调用接口,小程序的云开发的方便好用这里就不说了。使用云函数去调用接口是属于从浏览器端发送请求,所以应用类型要选择浏览器端
然后在下面的Referer白名单里,记得加上一个 * ,不然调用不了他的接口,申请完之后就有一个appkey,在调用接口的时候会用到。
然后api文档在这里:
image.png
image.png
就可以看到这个解析地理编码的接口,需要传三个参数,appkey,纬度和经度,注意是先写纬度然后经度。
准备工作做好之后开始编写云函数,使用云开发模板创建的小程序会有:
image.png
这个文件夹,在这里面创建云函数,因为要去发送http请求,超人鸭这里使用了一个叫request-promise的插件,这里使用的是npm安装,电脑没有node的伙伴要先安装node哦,小程序的云函数其实就是node.js的代码。右键新建的云函数,选择 “在终端打开”:
需要安装两个插件
npm install request --save // 安装request-promise之前需要安装这个
npm install request-promise --save

开始编写云函数:

// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init()
const rp = require('request-promise')  // 引入request-promise插件

// 云函数入口函数
exports.main = async (event, context) => {
  const res = await rp(`http://api.map.baidu.com/reverse_geocoding/v3/?ak=你的ak&output=json&coordtype=wgs84ll&location=${event.latitude},${event.longitude}`).then((res) => {
    return res
  })
  return res  // 将得到的结果返回给小程序端
}

这就是这个调用百度接口的云函数了,其中的event为小程序端调用云函数时传过来的参数,然后在小程序端,接上最开始的代码:

//在某个js里面
wx.getLocation({
  type: 'wgs84',  // 得到gps坐标
  success:(res) => {
    // 把得到的纬度经度传给下面的函数
    this.getCity(res.latitude, res.longitude)
  }
})
getCity(latitude, longitude) {
  wx.cloud.callFunction({
    name: '',//定义的云函数的名字
    data: {  // 传给云函数的参数对象,就是上面提到的event
      latitude,
      longitude
    }
  }).then((res) => {  // res就是在云函数端返回的res
     // 地理位置在res.result里面,请求过来是字符串,要先转成对象
     console.log(JSON.parse(res.result).result)
  })
}

来看一下打印出来是什么:


image.png

不仅有城市名,还有其他详细信息,百度地图的开放平台还有很多有用的api,大家都可以去试一下。
到这里就实现了获取用户的所在城市,而且采用的是云函数调用的方式。

相关文章

网友评论

      本文标题:小程序获取用户所在城市(使用云函数)

      本文链接:https://www.haomeiwen.com/subject/hogtmctx.html