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


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的Repeater实现代码
Jul 17 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
Dec 16 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
Jan 07 Javascript
浅谈JavaScript中Date(日期对象),Math对象
Feb 05 Javascript
js老生常谈之this,constructor ,prototype全面解析
Apr 05 Javascript
浅谈js在html中的加载执行顺序,多个jquery ready执行顺序
Nov 26 Javascript
详解微信小程序 页面跳转 传递参数
Dec 08 Javascript
JS日程管理插件FullCalendar中文说明文档
Feb 06 Javascript
浅谈JS如何实现真正的对象常量
Jun 25 Javascript
Node.js Express安装与使用教程
May 11 Javascript
vue2过滤器模糊查询方法
Sep 16 Javascript
如何利用JS将手机号中间四位变成*号
Sep 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设计模式之装饰器模式实例详解
2018/02/07 PHP
prototype class详解
2006/09/07 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
javascript实现百度地图鼠标滑动事件显示、隐藏
2015/04/02 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
完美解决js传递参数中加号和&amp;号自动改变的方法
2016/10/11 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
使用Bootstrap美化按钮实例代码(demo)
2017/02/03 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
python3访问sina首页中文的处理方法
2014/02/24 Python
python模拟表单提交登录图书馆
2018/04/27 Python
python如何制作英文字典
2019/06/25 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
Solid & Striped官网:美国泳装品牌
2019/06/19 全球购物
英国领先的豪华时尚家居网上商店:Amara
2019/08/12 全球购物
Etam俄罗斯:法国女士内衣和家居服网上商店
2019/10/30 全球购物
如何写自我鉴定
2014/03/19 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
合伙开公司协议书范本
2014/10/28 职场文书
护理医院见习报告
2014/11/03 职场文书
学校运动会开幕词
2016/03/03 职场文书
JAVA API 实用类 String详解
2021/10/05 Java/Android
Java 超详细讲解hashCode方法
2022/04/07 Java/Android