1.獲取當(dāng)前定位中文地址 2.獲取按關(guān)鍵搜索獲取周邊地址列表 3.點(diǎn)選地址列表選擇回傳給首頁
通過本文你可以了解到:
通過qqmapsdk.reverseGeocoder()獲取當(dāng)前定位中文地址 通過qqmapsdk.getSuggestion()關(guān)鍵字搜索獲取周邊地址 通過WxNotification回傳數(shù)據(jù)到上一頁
先來瀏覽一下效果圖:
通過騰訊地圖api實(shí)現(xiàn),下載地址:http://lbs.qq.com/qqmap_wx_jssdk/
核心代碼如下:
//引入類庫
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
});
}
});
其中g(shù)et_poi設(shè)置為1,可以返回得到當(dāng)前定位周邊的10個相近位置
核心代碼:
var keyword = e.detail.value;
qqmapsdk.getSuggestion({
keyword: keyword,
region: that.data.city,
success: function (res) {
that.setData({
result: res.data
});
}
});
其中region參數(shù),傳入之前reverseGeocoder獲取得到的城市信息,以過濾非本城市以外的其他搜索結(jié)果。
這里用到了第三方庫WxNotification
下載地址:https://github.com/icindy/WxNotificationCenter
核心方法如下:
//引入類庫
var WxNotificationCenter = require("../../utils/WxNotificationCenter.js");
//index.js 初始化注冊通知
WxNotificationCenter.addNotification("getAddressNotification",that.getAddress,that)
//index.js 監(jiān)聽通知,通過成員方法getAddress回調(diào)得到期望的參數(shù)值address
WxNotificationCenter.addNotification("addressSelectedNotification",that.getAddress,that)
//search.js 發(fā)送通知,帶上address參數(shù)值
WxNotificationCenter.postNotificationName("addressSelectedNotification", address);
實(shí)現(xiàn)getAddress方法
getAddress: function (address) {
that.setData({
address: address
});
}
本文同期視頻教程已經(jīng)傳到了自家小程序【靈動云課】上,感興趣的朋友可以在線觀看。
本文源碼下載:http://git.oschina.net/dotton/demo-wx