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


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的关于动态创建DOM元素的问题
Dec 24 Javascript
js键盘上下左右键怎么触发function(实例讲解)
Dec 14 Javascript
JS实现向表格中动态添加行的方法
Mar 30 Javascript
jquery实现根据浏览器窗口大小自动缩放图片的方法
Jul 17 Javascript
JavaScript获取各大浏览器信息图示
Nov 20 Javascript
JS 日期与时间戮相互转化的简单实例
Jun 22 Javascript
jQuery实现限制文本框的输入长度
Jan 11 Javascript
Node.js的Koa实现JWT用户认证方法
May 05 Javascript
微信小程序左滑删除功能开发案例详解
Nov 12 Javascript
微信小程序下拉框组件使用方法详解
Dec 28 Javascript
vue实现节点增删改功能
Sep 26 Javascript
js闭包的9个使用场景
Dec 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 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
PHP实现异步调用方法研究与分享
2011/10/27 PHP
php导出生成word的方法
2015/12/25 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
PHP实现的字符串匹配算法示例【sunday算法】
2017/12/19 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
nodejs微信扫码支付功能实现
2018/02/17 NodeJs
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
Html5自定义字体解决方法
2019/10/09 HTML / CSS
法国时尚童装网站:Melijoe
2016/08/10 全球购物
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
公司股东出资证明书
2014/11/01 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
撤诉书怎么写
2015/05/19 职场文书
在校生证明
2015/06/17 职场文书
golang正则之命名分组方式
2021/04/25 Golang
python 实现的截屏工具
2021/05/08 Python