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


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
Oct 31 Javascript
jQuery 中使用JSON的实现代码
Dec 01 Javascript
判断ie的两种简单方法
Aug 12 Javascript
window.open()详解及浏览器兼容性问题示例探讨
May 29 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
Oct 17 Javascript
JavaScript中的ajax功能的概念和示例详解
Oct 17 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
Vue中父组件向子组件通信的方法
Jul 11 Javascript
Vue 页面跳转不用router-link的实现代码
Apr 12 Javascript
微信小程序云开发 搭建一个管理小程序
May 17 Javascript
JS实现随机点名器
Apr 12 Javascript
vue 内联样式style中的background用法说明
Aug 05 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
论建造顺序的重要性
2020/03/04 星际争霸
PHP 存取 MySQL 数据库的一个例子
2006/10/09 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
ASP中用Join和Array,可以加快字符连接速度的代码
2007/08/22 Javascript
DIV外区域Click后关闭DIV的实现代码
2011/12/21 Javascript
到处都是jQuery选择器的年代 不了解它们的性能,行吗
2012/06/18 Javascript
js取得url地址参数实例
2013/02/22 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
React为 Vue 引入容器组件和展示组件的教程详解
2018/05/03 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
js获取图片的base64编码并压缩
2020/12/05 Javascript
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
2019/08/20 Python
Python序列类型的打包和解包实例
2019/12/21 Python
next在python中返回迭代器的实例方法
2020/12/15 Python
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
全球在线商店:BerryLook
2019/04/14 全球购物
建筑学专业自荐书
2014/07/09 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
《观潮》教学反思
2016/02/17 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
javascript对象3个属性特征
2021/11/17 Javascript
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js