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


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 validate 中文API 附validate.js中文api手册
Jul 31 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
Mar 28 Javascript
Javascript中的apply()方法浅析
Mar 15 Javascript
jQuery实现带玻璃流光质感的手风琴特效
Nov 20 Javascript
Easyui 之 Treegrid 笔记
Apr 29 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
vue实现选项卡及选项卡切换效果
Apr 24 Javascript
在layui.use 中自定义 function 的正确方法
Sep 16 Javascript
vue实现表格过滤功能
Sep 27 Javascript
JavaScript中的Proxy对象
Nov 27 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
基于JavaScript实现简单的轮播图
Mar 03 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实现按照权重随机排序数据的方法
2015/01/09 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
javascript 数组的方法集合
2008/06/05 Javascript
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
对xmlHttp对象的理解
2011/01/17 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
JS中的算法与数据结构之列表(List)实例详解
2019/08/16 Javascript
BootstrapValidator实现表单验证功能
2019/11/08 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
2020/05/27 Javascript
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
python实现静态web服务器
2019/09/03 Python
Django设置Postgresql的操作
2020/05/14 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
文科教师毕业的自我评价
2014/01/16 职场文书
校园安全教育广播稿
2014/02/17 职场文书
需求分析说明书
2014/05/09 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
如何才能写好调研报告?
2019/07/03 职场文书