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


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 相关文章推荐
JavaScript 原型与继承说明
Jun 09 Javascript
javascript实现C语言经典程序题
Nov 29 Javascript
javascript实现一个简单的弹出窗
Feb 22 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
Feb 18 Javascript
Angular组件化管理实现方法分析
Mar 17 Javascript
Bootstrap Table使用整理(二)
Jun 09 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
Sep 13 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
Jan 09 Javascript
react写一个select组件的实现代码
Apr 03 Javascript
监控微信小程序中的慢HTTP请求过程详解
Jul 05 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
Sep 28 Javascript
k8s node节点重新加入master集群的实现
Feb 22 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/07/09 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
php除数取整示例
2014/04/24 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
Vue.js 父子组件通讯开发实例
2016/09/06 Javascript
Node.js学习入门
2017/01/03 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
jQuery 利用ztree实现树形表格的实例代码
2017/09/27 jQuery
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
[01:03:38]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS CIS
2014/05/22 DOTA
Python中apply函数的用法实例教程
2014/07/31 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
python实现下载文件的三种方法
2017/02/09 Python
python 中random模块的常用方法总结
2017/07/08 Python
用python与文件进行交互的方法
2018/03/01 Python
python 一维二维插值实例
2020/04/22 Python
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
opencv实现图像平移效果
2021/03/24 Python
建筑班组长岗位职责
2014/01/02 职场文书
精彩的英文自荐信
2014/01/30 职场文书
12月小学生校园广播稿
2014/02/04 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
食品药品安全责任书
2015/05/11 职场文书
总经理致辞
2015/07/29 职场文书
ThinkPHP5和ThinkPHP6的区别
2021/03/31 PHP
Python selenium的这三种等待方式一定要会!
2021/06/10 Python