小程序不能定位城市怎么办?

2年前 (2022) 程序员胖胖胖虎阿
256 0 0

序言

今天给大家分享下小程序如何获取用户的城市定位。基本每个生活服务的应用都有这种类似场景,通过用户的当前位置,就可以实现周边的路线、美食等场景,典型的例子有高德地图中的导航、饿了么的定位等。那小程序怎么实现获取用户的城市定位呢,这就得看看如何运用百度API与小程序的API来实现这一功能。

小程序的API

wx.getLocation

获取用户的地理位置、速度。参考api,里面的参数type来获取坐标;altitude是否获取经纬度;以及回调函数的使用等。返回值比较详细些,经度、纬度、速度以及高度等等。

wx.openLocation 

这个API会打开微信内置地图, 选择坐标。
打开地图选择位置。通过上面那个
API-wx.getLocation获取name位置名称、address详细位置、longitude经度、latitude维度来作为openLocation的参数。

wx.chooseLocation 

利用地图选择位置,展示位置周边的场景。

百度API

然而,微信小程序的api上并没有获取国家或者城市信息,那要像微信朋友圈那样的帖子下面显示城市信息的话,还是得借助第三方的地图api,我在这里给各位老铁介绍下百度地图api的示例。

1.访问百度地图api(http://lbsyun.baidu.com/)

找到【开发文档】-【服务接口】-【web服务】-【地理解码】,可以实现通过经纬度返回城市信息;也可以通过城市信息返回经纬度。

小程序不能定位城市怎么办?

2.申请token

有几个步骤分别是:【申请百度账号】-【申请开发者】-【获取服务秘钥】。这几个步骤执行完后,便继续进行秘钥的获取。

小程序不能定位城市怎么办?

这里的应用类型应该输入微信小程序,而且APPID也应该是微信公众号后台的开发者ID,相当于白名单。提交之后,也就能看到自己申请的Token信息。

小程序不能定位城市怎么办?

开发流程

第一步,我们来获取经纬度信息

getGeo(e){ 
       wx.getLocation({
          successgeo => {
             console.log(geo);
          } 
}

小程序不能定位城市怎么办?

我们可以从图中获取到,经纬度、速度等具体数据。不过我们现在只需要latitudelongitude这两个作为参数去获取城市信息。

第二步,获取城市信息

将从百度API这边得到的token赋给一个变量ak定义好。接着从【全球逆地理编码】-【服务文档】中,找到我们需要的接口http://api.map.baidu.com/geocoder/v2/

getGeo(){ 
      let ak='微信小程序的APPID';
      let url='百度提供的地理编码接口  ';
       wx.getLocation({
          type'wgs84',
          successgeo => {
             wx.request({
              url,
              data:{
                 ak,
                 output:'json',
                 location:`${geo.latitude},${geo.longitude}`
              },
              success:(res)=>{console.log(res)
                 if (res.data.status === 0) {
                  this.location = res.data.result.addressComponent.city
                } else {
                  this.location = '未知地点' 
                }
              }
             })
          }

在进行编码过程中,akurl的获取是唯一且固定的;通过参考百度API的接口调用方式,可以对功能接口进行调用。

小程序不能定位城市怎么办?

通过小程序的API -wx.chooseLocation与第三方地图API的结合,可以获取到当前的城市信息,包括位置名称、详细地址等。

小程序不能定位城市怎么办?

另一方面,通过chooseLocation可以打开地图并选择周边的位置。

结语

通过对小程序地图API与百度地图API的掌握,可以很轻松地实现地图定位功能,结合这篇文章我们也可以拓展实现类似微信朋友圈的地理信息定位等功能。当然这里会遇到几个坑位:

  1. 百度地图API创建应用时需要注意白名单的APPID,得与自己打开项目的注册APPID匹配;

  2. 由于本地开发是会遇到跨域问题无法调用http://api.map.baidu.com/,因此我们需要在开发者工具上点击右上角的【详情】,将【不校验域名、…】这个栏目勾上,这样就能够进行API调用了。

如何置顶、标星公众号?

小程序不能定位城市怎么办?

小程序不能定位城市怎么办?

文章首发于才华与信仰 ,有兴趣的可以点击下方链接关注他哦 。

本文分享自微信公众号 - Java后端(web_resource)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

版权声明:程序员胖胖胖虎阿 发表于 2022年10月13日 下午1:24。
转载请注明:小程序不能定位城市怎么办? | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...