微信小程序实现搜索指定景点周边美食、酒店


Posted in Javascript onMay 18, 2019

本文为大家分享了微信小程序实现指定景点周边的美食、酒店等搜索,供大家参考,具体内容如下

以下为效果图,使用的是腾讯地图位置服务微信小程序JavaScript SDK,首先要申请腾讯地图位置服务的开发密钥,然后进行开发。

微信小程序实现搜索指定景点周边美食、酒店

wxml:

<view style='width:100%;height:{{height}}px;'>
 <map id="map" longitude='{{poi.longitude}}' latitude='{{poi.latitude}}' scale='16' markers='{{markers}}' style='width:100%;height:{{height}}px;' show-location bindmarkertap='gotoHere'></map>
 <view class='nav'>
 <button bindtap='search' data-type='酒店' class='nav-but'>酒店</button>
 <button bindtap='search' data-type='美食' class='nav-but'>美食</button>
 <button bindtap='search' data-type='书店' class='nav-but'>书店</button>
 <button bindtap='search' data-type='商城' class='nav-but'>商城</button>
 </view>
</view>
<view class='info'>
 <navigator wx:for="{{perimeter}}" url="../routes/routes?latitude={{startlat}}&&longitude={{startlng}}&&latitude2={{item.location.lat}}&&longitude2={{item.location.lng}}" class="weui-media-box weui-media-box_appmsg" hover-class="weui-cell_active">
  <view class="weui-media-box__bd weui-media-box__bd_in-appmsg">
  <view class="weui-media-box__title">{{item.title}}</view>
   <view class="weui-media-box__desc">位置:{{item.address}} </view> 
  </view>
 </navigator>
</view>

js页面的主要函数有两个,一个是将具体地址转为经纬度的地址解析函数;一个是根据指定经纬度以及关键词查找周边相关搜索。

var QQMapWX = require('../../utils/qqmap-wx-jssdk.js');
var qqmapsdk;
var startlat;
var startlng;
 
Page({
 data: {
 height:"400",
 perimeter:[]
 },
 onLoad: function (options) {
 var address = options.address;
 // 实例化API核心类
 qqmapsdk = new QQMapWX({
  key: 'IBCBZ-XXXXXXXXXXXXXXXXXXXXX'
 });
 this.addressGeocoder(address);
 },
 search:function(e){
 var _this = this;
 var a = e.target.dataset.type;
 //console.log("a="+a);
 _this.nearby_search(a);
 },
 //根据地址转为经纬度
 addressGeocoder:function(address){
 var _this = this;
 qqmapsdk.geocoder({
  address:address,
  success:function(res){
  console.log("res="+res);
  var res = res.result;
  var latitude = res.location.lat;
  var longitude = res.location.lng;
  //根据地址解析在地图上标记解析地址位置
  _this.setData({
   markers:[{
   id:0,
   title:res.title,
   latitude:latitude,
   longitude:longitude,
   iconPath:'../../images/marker_checked.png',
   width:20,
   height:20
   }],
   poi:{
   latitude:latitude,
   longitude:longitude
   },
   startlat:latitude,
   startlng:longitude
  });
  },
  fail:function(error){
  console.error("error="+error);
  },
  complete:function(res){
  console.log("complete="+res);
  }
 })
 },
 //周边地点搜索
 nearby_search:function(keyword){
 var _this = this;
 qqmapsdk.search({
  keyword:keyword,
  location:_this.data.poi,
  success:function(res){
  var obj = JSON.stringify(res);
  console.log("obj="+obj);
  var mks = [];
  for(var i = 0; i <res.data.length; i++){
   mks.push({
   title:res.data[i].location.lat,
   id:res.data[i].id,
   latitude:res.data[i].location.lat,
   longitude:res.data[i].location.lng,
   iconPath:"../../images/marker.png",
   width:20,
   height:20,
   callout:{
    content: res.data[i].title,
    color:'#000',
    display:'ALWAYS'
   }
   })
  }
  _this.setData({
   //markers:mks
   markers:mks,
   perimeter:res.data
  })
  },
  fail:function(res){
  console.log("fail="+res);
  },
  complete:function(res){
  console.log("complete="+res);
  }
 
 });
 },
 gotoHere:function(res){
 var obj = JSON.stringify(res);
 console.log("gotoHere="+obj);
 },
 onShow: function () {
 
 }
})

暂告一段落,下一篇写指定景点到所选择的的周边的导航。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
input的focus方法使用
Mar 13 Javascript
showModelDialog弹出文件下载窗口的使用示例
Nov 19 Javascript
简述JavaScript的正则表达式中test()方法的使用
Jun 16 Javascript
JS命令模式例子之菜单程序
Oct 10 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
Sep 11 Javascript
微信小程序使用Promise简化回调
Feb 06 Javascript
react+ant design实现Table的增、删、改的示例代码
Dec 27 Javascript
Angular(5.2-&gt;6.1)升级小结
Dec 27 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
Jun 11 Javascript
微信小程序实现上传多张图片、删除图片
Jul 29 Javascript
Vue实现小购物车功能
Dec 21 Vue.js
Vue 数据响应式相关总结
Jan 28 Vue.js
vue+高德地图写地图选址组件的方法
May 18 #Javascript
微信小程序实现搜索功能并跳转搜索结果页面
May 18 #Javascript
js实现图片推拉门效果代码实例
May 18 #Javascript
微信小程序代码上传、审核发布小程序
May 18 #Javascript
详解js中let与var声明变量的区别
Apr 05 #Javascript
webpack中如何加载静态文件的方法步骤
May 18 #Javascript
微信小程序实现录音时的麦克风动画效果实例
May 18 #Javascript
You might like
ftp类(example.php)
2006/10/09 PHP
php创建sprite
2014/02/11 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
Angular17之Angular自定义指令详解
2018/01/21 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
vue缓存的keepalive页面刷新数据的方法
2019/04/23 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
Openlayers学习之地图比例尺控件
2020/09/28 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
Django返回json数据用法示例
2016/09/18 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
对numpy下的轴交换transpose和swapaxes的示例解读
2019/06/26 Python
Python初学者常见错误详解
2019/07/02 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
python实现的生成word文档功能示例
2019/08/23 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
前端canvas水印快速制作(附完整代码)
2019/09/19 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
2013/08/02 HTML / CSS
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
毕业自荐信
2013/12/16 职场文书
中学生爱国演讲稿
2013/12/31 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
在Django中使用MQTT的方法
2021/05/10 Python