微信小程序获取位置信息,查询天气

484 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第6天,点击查看活动详情

效果

直接进入主题,下面的是最终的效果

1.png

遇到问题

相信做过小程序开发的都知道微信小程序自带的 wx.getlocation 接口可以获取到经纬度,但很坑的一点是没法直接获取到位置信息。

所以都会选择用别的第三方接口或者SDK来解析获取位置信息,之前这个项目用的是百度地图的接口来获取位置信息和天气的,不知道为什么后来一直报错不显示了。

找到问题

上官网一看发现改了,之前直接调用接口就可以获取数据,现在小程序内必须要用SDK才行,虽然麻烦但我还是按照他的要求下载了SDK,改引入的引入,该配置的配置,然后保存运行,结果发现还是报错。

我还以为是哪没写对,于是开始找问题,又是一通改,最后来来回回的改了好几遍,结果还是没用,报错。

于是我索性把百度地图官网的demo下载下来,导入开发者工具运行,发现也报错,跟之前的报错信息一模一样,哦吼!完蛋了,看来是企鹅限制了,这回百度是不能用了。

最后选择了使用腾讯地图(自家人的肯定能用),果然效果非常好,如下图

2.png

实现步骤

来说说整体的步骤吧

腾讯地图的SDK大家可以自行去网站,注册、登录、创建应用然后获取到自己的秘钥。

首先在相应的js文件中引入腾讯地图SDK

3.png

然后,在onload函数中调用getlocation()方法,用微信wx.getLocation接口获取当前位置的经纬度

4.png

接着,在getLocation()中调用getLocal()用经纬度信息逆解析获取位置信息,这个地方就用到了腾讯地图的SDK了

5.png

同时,在getLocation中调用getWeather()用来获取天气,这里获取天气我用的是“YY天气”,免费,用起来简单,也刚好符合我心在的需求

www.yytianqi.com/api.html ,本来想用高德的天气接口发现他必须要填写城市编码,有点麻烦

YY天气接口你可以选择用城市编码、经纬度或者IP查询天气,我这里用的是经纬度

7.png

几行代码就搞定,是不是非常简单

8.png

参数名称全是拼音,非常接地气,一看就明白。fl:风力;fx:风向;sd:湿度;qw:气温