微信小程序附近定位实现(百度地图)

本文介绍了如何在微信小程序中使用百度地图API实现附近位置的检索和定位功能。首先,展示了在index.xml中配置map组件,设置经纬度、缩放级别和点击事件。接着,在index.js中引入并初始化百度地图API,通过搜索函数获取当前位置的POI信息,并动态绑定到页面。当用户点击地图上的标记时,触发clickMarker函数,实现导航到所选位置的功能。这是一个初学者的学习记录,欢迎交流讨论。
摘要由CSDN通过智能技术生成

微信小程序附近定位实现(百度地图)

index.xml部分

<map id="map"

longitude="{{longitude}}" //longitude 纬度坐标

latitude="{{latitude}}" //latitude 经度坐标

scale="16" //scale 缩放级别,取值范围为3-20

show-location //是否在map上显示自身
markers="{{markers}}" // markers为数组

bindmarkertap="clickMarker" //绑定clickMarker

></map>

里面有详细介绍

map | 微信开放文档

[developers.weixin.qq.com]
(https://developers.weixin.qq.com/miniprogram/dev/component/map.html)
图标
百度地图api

index.js部分

var bmap = require('../../utils/bmap-wx.js') //引入百度地图api
var ak = ak //需自行在百度地图创建引入ak


​
lbsyun.baidu.com
//构造百度地图api实例
var BMap = new bmap.BMapWX({
ak: ak
})

//用于保存BMap.search接口返回的数据
var wxMarkerData = []

//查询当前位置的poi信息
search:function(e){
var that = this
//查询失败,直接打印log
var fail = function(data) {
console.log(data)
}
//查询成功后将结果数据动态绑定到页面上
var success = function(data) {
// console.log(data);
wxMarkerData = data.wxMarkerData;
that.setData({
markers: wxMarkerData
})
that.setData({
latitude: wxMarkerData[0].latitude
})
that.setData({
longitude: wxMarkerData[0].longitude
})
}

//使用百度api查询周边信息
//其中使用到了dataset属性
BMap.search({
query: e.target.dataset.type,
success: success,
fail: fail
})
},

clickMarker(e){ //map 上绑定的函数
var that = this;
var markersy = that.data.markers

// console.log(e.detail.markerId);
for (var i = 0; i < markersy.length; i++) { //利用循环对比marker和markers中一样的ID
if (e.detail.markerId == markersy[i].id) { //得到点击map上面的经纬度坐标
// console.log("markers" + that.markersy[i].longitude+" "+that.markersy[i].latitude);
var navi_lng=markersy[i].longitude;
var navi_lat=markersy[i].latitude;
// console.log(navi_lng,navi_lat);
var towerNum=markersy[i].title;
wx.openLocation({ //将此经纬度通过openlocation导航
latitude: navi_lat,
longitude: navi_lng,
name:towerNum
})
}
}
}

至此完毕,欢迎大佬交流讨论,刚学习微信小程序,有出入的地方多多指教,谢谢,只此一家,严禁转发,如要转发,带上备注。。。。。。。。。。!!!!!!

小工具中附近定位里面是以上代码实现效果

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值