微信小程序获取当前所在城市的方法

       现在很多企业商家为了提供更准确的服务,基本都要获取用户当前所在的地理位置,城市是其中最基本的。而微信小程序官方提供的API只能获取当前地理位置的经纬度,需要经过第三方转换才可以得到我所需的城市名,经过多次测试,终于找到方法。

这两个方法都需要用到小程序官方的API来获取经纬度,这个API的信息如下

wx.getLocation(OBJECT)   

地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/location.html#wxgetlocationobject

获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用;当用户点击“显示在聊天顶部”时,此接口可继续调用。

OBJECT参数说明:

微信小程序获取当前所在城市的方法_第1张图片

success返回参数说明:

微信小程序获取当前所在城市的方法_第2张图片

示例代码:

 

微信小程序获取当前所在城市的方法_第3张图片

使用实例代码就可以获取经纬度:可以从控制台进行查看:


微信小程序获取当前所在城市的方法_第4张图片

latitude:接下来用到的纬度

longitude:接下来用到的经度


用这个API结合另外两个API即可得到想要的地理位置。

第一个是使用易源数据的api 地址与经纬度互转  https://www.showapi.com/api/lookPoint/238/2

首先在左侧的 接入点列表 选择 经纬度-->地址 。

这个api需要的请求参数有三个:


微信小程序获取当前所在城市的方法_第5张图片

知道这些就好办了,直接使用wx.request(OBJECT)按照下图操作即可获取城市。


微信小程序获取当前所在城市的方法_第6张图片

输出的结果如下:


微信小程序获取当前所在城市的方法_第7张图片

方法到此结束,附上完整代码:

//index.js

//获取应用实例

var app = getApp()

Page({

onLoad: function () {

console.log('onLoad')

var that = this

//调用应用实例的方法获取全局数据

app.getUserInfo(function(userInfo){

//更新数据

that.setData({

userInfo:userInfo

})

})

wx.getLocation({ //官方获取经纬度api

type: 'wgs84',

success: function (res) {

console.log(res)

var latitude = res.latitude //纬度

var longitude = res.longitude //经度

var speed = res.speed  //速度,这里用不到

var accuracy = res.accuracy //精确度

wx.request({ //向服务器发送请求转换地理位置

url: 'http://route.showapi.com/238-2',//请求的url

data:{ //请求的参数

showapi_appid:'42391',//易源应用key:申请账号可获取

showapi_sign:'bb5250042ace47a088290abf88229a38',//数字签名:申请账号可获取

lat:latitude,//纬度

lng: longitude,//经度

from:1// from

},

success:function (res){

console.log(res)

// console.log("当前城市:"+res.data.showapi_res_body.addressComponent.city)

}

})

}

})

}

})

你可能感兴趣的:(微信小程序获取当前所在城市的方法)