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


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 相关文章推荐
js面向对象之静态方法和静态属性实例分析
Jan 10 Javascript
jQuery如何防止这种冒泡事件发生
Feb 27 Javascript
Ionic快速安装教程
Jun 03 Javascript
JavaScript事件学习小结(三)js事件对象
Jun 09 Javascript
使用Angular.js实现简单的购物车功能
Nov 21 Javascript
浅谈JavaScript异步编程
Jan 20 Javascript
JS实现队列的先进先出功能示例
May 10 Javascript
node.js 发布订阅模式的实例
Sep 10 Javascript
实例教学如何写vue插件
Nov 30 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
Dec 19 Javascript
详解angularjs 学习之 scope作用域
Jan 15 Javascript
vue实现自定义多选与单选的答题功能
Jul 05 Javascript
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
如何对PHP程序中的常见漏洞进行攻击
2006/10/09 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
jquery解决图片路径不存在执行替换路径
2013/02/06 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
分享一个自己动手写的jQuery分页插件
2014/08/28 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
实例讲解Python中函数的调用与定义
2016/03/14 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
django url到views参数传递的实例
2019/07/19 Python
Python实现将蓝底照片转化为白底照片功能完整实例
2019/12/13 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
俄罗斯玩具、儿童用品、儿童服装和鞋子网上商店:MyToys.ru
2019/10/14 全球购物
迪卡侬波兰体育用品商店:Decathlon波兰
2020/03/31 全球购物
DTD的含义以及作用
2014/01/26 面试题
工作失误检讨书范文大全
2014/01/13 职场文书
村优秀党员事迹材料
2014/01/15 职场文书
交通事故和解协议书
2014/09/25 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
心灵捕手观后感
2015/06/02 职场文书
工作会议简报
2015/07/20 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers