微信小程序?qū)崿F(xiàn)搜索指定景點(diǎn)周邊美食、酒店
本文為大家分享了微信小程序?qū)崿F(xiàn)指定景點(diǎn)周邊的美食、酒店等搜索,供大家參考,具體內(nèi)容如下
以下為效果圖,使用的是騰訊地圖位置服務(wù)微信小程序JavaScript SDK,首先要申請(qǐng)騰訊地圖位置服務(wù)的開(kāi)發(fā)密鑰,然后進(jìn)行開(kāi)發(fā)。

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='書(shū)店' class='nav-but'>書(shū)店</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頁(yè)面的主要函數(shù)有兩個(gè),一個(gè)是將具體地址轉(zhuǎn)為經(jīng)緯度的地址解析函數(shù);一個(gè)是根據(jù)指定經(jīng)緯度以及關(guān)鍵詞查找周邊相關(guān)搜索。
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;
// 實(shí)例化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);
},
//根據(jù)地址轉(zhuǎn)為經(jīng)緯度
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;
//根據(jù)地址解析在地圖上標(biāo)記解析地址位置
_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);
}
})
},
//周邊地點(diǎn)搜索
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 () {
}
})
暫告一段落,下一篇寫(xiě)指定景點(diǎn)到所選擇的的周邊的導(dǎo)航。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序搜索組件wxSearch實(shí)例詳解
- 微信小程序?qū)崿F(xiàn)全局搜索代碼高亮的示例
- 微信小程序下拉框搜索功能的實(shí)現(xiàn)方法
- 小程序?qū)崿F(xiàn)搜索框功能
- 微信小程序?qū)崿F(xiàn)搜索歷史功能
- 小程序?qū)崿F(xiàn)搜索框
- 微信小程序 搜索框組件代碼實(shí)例
- 小程序獲取當(dāng)前位置加搜索附近熱門(mén)小區(qū)及商區(qū)的方法
- 微信小程序城市選擇及搜索功能的方法
- 微信小程序搜索功能(附:小程序前端+PHP后端)
- 微信小程序 可搜索的地址選擇實(shí)現(xiàn)詳解
- 微信小程序開(kāi)發(fā)搜索功能實(shí)現(xiàn)(前端+后端+數(shù)據(jù)庫(kù))
相關(guān)文章
p5.js實(shí)現(xiàn)聲音控制警察抓小偷游戲示例解析
這篇文章主要為大家介紹了p5.js實(shí)現(xiàn)聲音控制警察抓小偷游戲示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
javascript Canvas動(dòng)態(tài)粒子連線
這篇文章主要為大家詳細(xì)介紹了javascript Canvas動(dòng)態(tài)粒子連線,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01
輕松實(shí)現(xiàn)javascript數(shù)據(jù)雙向綁定
這篇文章教大家輕松實(shí)現(xiàn)javascript數(shù)據(jù)雙向綁定,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-11-11
深入理解JavaScript系列(35):設(shè)計(jì)模式之迭代器模式詳解
這篇文章主要介紹了深入理解JavaScript系列(35):設(shè)計(jì)模式之迭代器模式詳解,迭代器模式(Iterator):提供一種方法順序一個(gè)聚合對(duì)象中各個(gè)元素,而又不暴露該對(duì)象內(nèi)部表示,需要的朋友可以參考下2015-03-03
js實(shí)現(xiàn)StringBuffer的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)StringBuffer的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
詳解JS 比較兩個(gè)Json對(duì)象的值是否相等的實(shí)例
這篇文章主要介紹了JS 比較兩個(gè)Json對(duì)象的值是否相等的實(shí)例,有需要的朋友可以參考一下2013-11-11
根據(jù)地區(qū)不同顯示時(shí)間的javascript代碼
根據(jù)地區(qū)不同顯示時(shí)間的javascript代碼...2007-08-08
JS實(shí)現(xiàn)頁(yè)面導(dǎo)航與內(nèi)容相互錨定實(shí)例詳解
這篇文章主要為大家介紹了JS實(shí)現(xiàn)頁(yè)面導(dǎo)航與內(nèi)容相互錨定實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10

