bt-lcyd/pages/around/around.js

126 lines
3.3 KiB
JavaScript
Raw Normal View History

2022-06-14 10:56:41 +08:00
// 引用百度地图微信小程序JSAPI模块
var bmap = require('../../lib/bmap-wx.js');
var wxMarkerData = [];
Page({
data: {
markers: [],
longitude: 111.75292024572663,
latitude: 40.85426882952502,
placeData: {},
searchType: '场馆',
showDetail: false
},
goHere: function () {
var self = this
wx.getLocation({
type: 'gcj02', //返回可以用于wx.openLocation的经纬度
success(res) {
const latitude = parseFloat(self.data.placeData.latitude)
const longitude = parseFloat(self.data.placeData.longitude)
wx.openLocation({
latitude,
longitude,
scale: 15
})
}
})
},
doSearch: function (e) {
this.setData({
searchType: e.currentTarget.dataset.poi
})
this.initMap()
},
makertap: function (e) {
var that = this;
var id = e.markerId;
that.showSearchInfo(wxMarkerData, id);
that.changeMarkerColor(wxMarkerData, id);
that.setData({
showDetail: true
})
},
initMap: function () {
var that = this;
// 新建百度地图对象
var BMap = new bmap.BMapWX({
ak: 'Zk732rbyjd327q7Zj9EOtRjUn2ED1GWK'
});
var fail = function (data) {
// console.log(data)
};
var success = function (data) {
wxMarkerData = data.wxMarkerData;
wxMarkerData[0].longitude = that.data.longitude
wxMarkerData[0].latitude = that.data.latitude
that.setData({
markers: wxMarkerData
});
that.setData({
latitude: wxMarkerData[0].latitude
});
that.setData({
longitude: wxMarkerData[0].longitude
});
}
// 发起POI检索请求
BMap.search({
"query": that.data.searchType,
fail: fail,
success: success,
// 此处需要在相应路径放置图片文件
iconPath: '../../images/marker_red.png',
// 此处需要在相应路径放置图片文件
iconTapPath: '../../images/marker_red.png'
});
},
showSearchInfo: function (data, i) {
var that = this;
if(data[i].telephone == undefined){
data[i].telephone = '暂无'
}
that.setData({
placeData: {
title: '名称:' + data[i].title + '\n',
address: '地址:' + data[i].address + '\n',
telephone: '电话:' + data[i].telephone + '\n',
longitude : data[i].longitude,
latitude : data[i].latitude
}
});
},
onLoad: function () {
this.getPosition()
},
changeMarkerColor: function (data, i) {
var that = this;
var markers = [];
for (var j = 0; j < data.length; j++) {
if (j == i) {
// 此处需要在相应路径放置图片文件
data[j].iconPath = "../../images/marker_yellow.png";
} else {
// 此处需要在相应路径放置图片文件
data[j].iconPath = "../../images/marker_red.png";
}
markers[j] = data[j];
}
that.setData({
markers: markers
});
},
getPosition: function (e) {
wx.getLocation({
type: 'wgs84',
success: (res)=> {
var latitude = res.latitude
var longitude = res.longitude
var speed = res.speed
var accuracy = res.accuracy
this.setData({ latitude: latitude, longitude: longitude})
this.initMap()
}
})
}
})