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


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 相关文章推荐
jQuery+.net实现浏览更多内容(改编php版本)
Mar 28 Javascript
随窗体滑动的小插件sticky源码
Jun 21 Javascript
JavaScript全排列的六种算法 具体实现
Jun 29 Javascript
javascript获取下拉列表框当中的文本值示例代码
Jul 31 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
Nov 07 Javascript
jquery显示loading图片直到网页加载完成的方法
Jun 25 Javascript
jQuery unbind()方法实例详解
Jan 19 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
Sep 06 Javascript
基于angularJS的表单验证指令介绍
Oct 21 Javascript
ES6的解构赋值实例详解
May 06 Javascript
Vue-CLI 项目在pycharm中配置方法
Aug 30 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
Aug 09 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
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
JS:window.onload的使用介绍
2013/11/13 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
JavaScript中的object转换成number或string规则介绍
2014/12/31 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
[05:02][DOTA2]DOTA进化论 第一期
2013/09/27 DOTA
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
Python拼接字符串的7种方式详解
2020/03/19 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
法国低价在线宠物商店:bitiba.fr
2020/07/03 全球购物
override和overload的区别
2016/03/09 面试题
大学生演讲稿范文
2014/01/11 职场文书
法律专业自荐信
2014/06/03 职场文书
社区务虚会发言材料
2014/10/20 职场文书
成本会计实训报告
2014/11/05 职场文书
实习指导教师评语
2014/12/30 职场文书
大学生个人学年总结
2015/02/15 职场文书
2015年预算员工作总结
2015/05/14 职场文书
信仰纪录片观后感
2015/06/08 职场文书
父母教会我观后感
2015/06/17 职场文书
病房管理制度范本
2015/08/06 职场文书
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers
GoFrame gredis缓存DoVar Conn连接对象 自动序列化GoFrame gredisDo/DoVar方法Conn连接对象自动序列化/反序列化总结
2022/06/14 Golang