最近在捣腾小程序,想开发一个本身的小程序,过一把独立开发的瘾。html
本身设计,本身搞数据,本身找图标,本身决定要或者不要什么功能,彻底跟着心走,目前体验下来,感受仍是蛮爽的。比在公司产品要你作什么你就得作什么舒服多了,巴适的很(伪装本身是四川人),哈哈小程序
虽然我是一个App开发,但我仍是蛮注重用户体验的,我会去考虑应用的使用场景,使用习惯,不断的去调整,去优化。此次开发的小程序,从配色、图标选择、UI设计,到页面结构、功能等都花了不少心思。欢迎体验,吐槽。 微信小程序
呀!一不当心扯远了,回归主题!api
微信小程序开发,可使用地图组件map
,来进行地图显示、定位、显示大头针等基本功能,具体能够看官方文档:微信小程序map组件。数组
map
组件只提供一些基本的“硬件
”,还须要“大脑
”来驱动这些“硬件
”。这个“大脑
”就是腾讯地图、百度地图和高德地图提供的小程序SDK。其实这些SDK只是提供了一些网络请求接口,请求这些接口,能得到对应结构的网络数据,再驱动map
组件来渲染。bash
好比线路规划:从A到B,只要肯定起点经纬度和终点经纬度,传给SDK,SDK里就会发起网络请求,得到最佳路线,返回给你从A到B所途经的转折点经纬度数组,你把获得的经纬度数组传给map
组件,map
就能绘制路线。微信
高德地图提供的接口有:网络
方法 | 用途 |
---|---|
getPoiAround(Object) | 获取周边的POI。 querykeywords、location、querytypes 字段于 1.1.0 版本新增。 |
getRegeo(Object) | 获取地址描述信息。 location 字段于 1.1.0 版本新增。 |
getWeather(Object) | 获取天气状况(实时和预报)。type、city字段于 1.1.0 版本新增。 |
getStaticmap(Object) | 获取静态的地图图片。 getStaticmap(Object) 方法于 1.1.0 版本新增。 |
getInputtips(Object) | 获取提示词。 getInputtips(Object) 方法于 1.2.0 版本新增。 |
getDrivingRoute(Object) | 获取驾车路线。 getDrivingRoute(Object) 方法于 1.2.0 版本新增。 |
getWalkingRoute(Object) | 获取步行路线。 getWalkingRoute(Object) 方法于 1.2.0 版本新增。 |
getTransitRoute(Object) | 获取公交路线。 getTransitRoute(Object) 方法于 1.2.0 版本新增。 |
getRidingRoute(Object) | 获取骑行路线。 getRidingRoute(Object) 方法于 1.2.0 版本新增。 |
具体接口用法,参考高德官方文档: AMapWX基本方法函数
**首先:**下载SDK下载地址 下载完后,直接将amap-wx.js
文件拖到工程libs目录下,这个目录随便建的,必定要放到miniprogram
文件夹内,任何位置均可以,否则找不到。如图: 优化
引用: 1.在js文件开头引入并声明SDK对象
2.把不相关代码删掉后,得到高德当前位置天气状况,大概就是这样子的:
// miniprogram/pages/home/home.js
var amapFile = require('../../libs/amap-wx.js');
Page({
/**
* 页面的初始数据
* 本地图:"../../images/hz_metro_map.png"
* 网络图:
*/
data: {
weatherInfo: null,
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
this._getWeather();
},
/**
* 获取天气信息
*/
_getWeather: function() {
var that = this;
var myAmapFun = new amapFile.AMapWX({ key: '高德地图key' });
myAmapFun.getWeather({
success: function (data) {
//成功回调
console.log(data)
},
fail: function (info) {
//失败回调
console.log(info)
}
})
}
})
复制代码
这样就拿到了高德的数据,超级简单有木有。
虽然很简单,可是使用起来,仍是发现有坑。使用getPoiAround
接口时,发现没有分页功能。其实高德服务度接口是有分页功能的,可是小程序SDK里并无把page
参数暴露出来,坑啊。我使用的SDK版本是:sdkversion: "1.2.0"
解决办法:在amap-wx.js
文件里,找到getPoiAround
接口,往参数里添加一个page
字段便可,以下图:
这样就能正常分页了。
到此就说完了,也就那么回事。
欢迎扫上面小程序码,体验个人小程序,多多吐槽,我将继续优化。谢谢!