首页 > 课堂 > 小程序 > 正文

微信小程序仿饿了么地址定位、筛选与回传的实现教程

2020-03-21 16:23:45
字体:
来源:转载
供稿:网友

1.自动定位以及返回10个相近位置

核心代码如下:

  1. //引入类库 
  2.  
  3. var QQMapWX = require('../../utils/qqmap-wx-jssdk.min.js'
  4.  
  5. qqmapsdk = new QQMapWX({ 
  6.  
  7. key: 'BJFBZ-ZFTHW-Y2HRO-RL2UZ-M6EC3-GMF4U' 
  8.  
  9. }); 
  10.  
  11. qqmapsdk.reverseGeocoder({ 
  12.  
  13. get_poi: 1, 
  14.  
  15. success: function (res) { 
  16.  
  17. that.setData({ 
  18.  
  19. currentAddress: res.result.formatted_addresses.recommend, 
  20.  
  21. city: res.result.address_component.city, 
  22.  
  23. result: res.result.pois 
  24.  
  25. }); 
  26.  
  27.  
  28. }); 

其中get_poi设置为1,可以返回得到当前定位周边的10个相近位置

2.关键字搜索

核心代码:

  1. var keyword = e.detail.value; 
  2.  
  3. qqmapsdk.getSuggestion({ 
  4.  
  5. keyword: keyword, 
  6.  
  7. region: that.data.city, 
  8.  
  9. success: function (res) { 
  10.  
  11. that.setData({ 
  12.  
  13. result: res.data 
  14.  
  15. }); 
  16.  
  17.  
  18. }); 

其中region参数,传入之前reverseGeocoder获取得到的城市信息,以过滤非本城市以外的其他搜索结果。

回传数据到首页

这里用到了第三方库WxNotification

核心方法如下:

  1. //引入类库 
  2.  
  3. var WxNotificationCenter = require("../../utils/WxNotificationCenter.js"); 
  4.  
  5. //index.js 初始化注册通知 
  6.  
  7. WxNotificationCenter.addNotification("getAddressNotification",that.getAddress,that) 
  8.  
  9. //index.js 监听通知,通过成员方法getAddress回调得到期望的参数值address 
  10.  
  11. WxNotificationCenter.addNotification("addressSelectedNotification",that.getAddress,that) 
  12.  
  13. //search.js 发送通知,带上address参数值 
  14.  
  15. WxNotificationCenter.postNotificationName("addressSelectedNotification", address); 
  16.  
  17. 实现getAddress方法 
  18.  
  19. getAddress: function (address) { 
  20.  
  21. that.setData({ 
  22.  
  23. address: address 
  24.  
  25. }); 
  26.  

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表