仿饿了么地址定位、筛选与回传

通过本文你可以了解到:

通过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");
//index.js 初始化注册通知
WxNotificationCenter.addNotification("getAddressNotification",that.getAddress,that)
//index.js 监听通知,通过成员方法getAddress回调得到期望的参数值address
WxNotificationCenter.addNotification("addressSelectedNotification",that.getAddress,that)
//search.js 发送通知,带上address参数值
WxNotificationCenter.postNotificationName("addressSelectedNotification", address);

实现getAddress方法

getAddress: function (address) {
    that.setData({
        address: address
    });
}

本文同期视频教程已经传到了自家小程序【灵动云课堂】上,感兴趣的朋友可以在线观看。

本文源码下载:http://git.oschina.net/dotton/demo-wx

对移动开发有兴趣的朋友可以关注我的公众号【huangxiujie85】与我交流讨论,给我留言或文章评论。

转载于:https://my.oschina.net/huangxiujie/blog/850710

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值