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


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 相关文章推荐
date.parse在IE和FF中的区别
Jul 29 Javascript
关于javascript中this关键字(翻译+自我理解)
Oct 20 Javascript
关于jquery中全局函数each使用介绍
Dec 10 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
Jan 23 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
Feb 25 Javascript
javascript 常用验证函数总结
Jun 28 Javascript
Javascript 实现计算器时间功能详解及实例(二)
Jan 08 Javascript
JavaScript箭头函数_动力节点Java学院整理
Jun 28 Javascript
判断滚动条滑到底部触发事件(实例讲解)
Nov 15 Javascript
JS简单实现动态添加HTML标记的方法示例
Apr 08 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
Jul 29 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 高性能书写
2010/12/11 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
关于js datetime的那点事
2011/11/15 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
React中使用async validator进行表单验证的实例代码
2018/08/17 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
vue单文件组件无法获取$refs的问题
2020/06/24 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
在Python中使用正则表达式的方法
2015/08/13 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
python 使用装饰器并记录log的示例代码
2019/07/12 Python
python常用数据重复项处理方法
2019/11/22 Python
Python使用进程Process模块管理资源
2020/03/05 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
医药工作者的求职信范文
2013/09/21 职场文书
应用化学专业本科生求职信
2013/09/29 职场文书
大学生的应聘自我评价
2013/12/13 职场文书
结婚通知短信大全
2015/04/17 职场文书
离婚起诉状范本
2015/05/19 职场文书
运动会通讯稿300字
2015/07/20 职场文书
《草虫的村落》教学反思
2016/02/20 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
详解Go与PHP的语法对比
2021/05/29 PHP
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
OpenFeign实现远程调用
2022/08/14 Java/Android