通过本文你可以了解到:
通过qqmapsdk.reverseGeocoder()获取当前定位中文地址 通过qqmapsdk.getSuggestion()关键字搜索获取周边地址 通过WxNotification回传数据到上一页
先来浏览一下效果图:

请求用户地理定位
通过腾讯地图api实现,下载地址:http://lbs.qq.com/qqmap_wx_jssdk/
1.自动定位以及返回10个相近位置
核心代码如下:
var QQMapWX = require('../../utils/qqmap-wx-jssdk.min.js')
qqmapsdk = new QQMapWX({
key: 'BJFBZ-ZFTHW-Y2HRO-RL2UZ-M6EC3-GMF4U'
});
qqmapsdk.reverseGeocoder({
get_poi: 1,
success: function (res) {
that.setData({
currentAddress: res.result.formatted_addresses.recommend,
city: res.result.address_component.city,
result: res.result.pois
});
}
});
其中get_poi设置为1,可以返回得到当前定位周边的10个相近位置
2.关键字搜索
核心代码:
var keyword = e.detail.value;
qqmapsdk.getSuggestion({
keyword: keyword,
region: that.data.city,
success: function (res) {
that.setData({
result: res.data
});
}
});
其中region参数,传入之前reverseGeocoder获取得到的城市信息,以过滤非本城市以外的其他搜索结果。
回传数据到首页
这里用到了第三方库WxNotification
下载地址:https://github.com/icindy/WxNotificationCenter
核心方法如下:
var WxNotificationCenter = require("../../utils/WxNotificationCenter.js");
WxNotificationCenter.addNotification("getAddressNotification",that.getAddress,that)
WxNotificationCenter.addNotification("addressSelectedNotification",that.getAddress,that)
WxNotificationCenter.postNotificationName("addressSelectedNotification", address);
实现getAddress方法
getAddress: function (address) {
that.setData({
address: address
});
}
本文同期视频教程已经传到了自家小程序【灵动云课】上,感兴趣的朋友可以在线观看。
本文源码下载:http://git.oschina.net/dotton/demo-wx