微信小程序用腾讯地图在地图上展示点位,当点击点位在屏幕底部弹出弹框,请你用代码实现一个完整案例
时间: 2024-06-10 09:06:40 浏览: 220
很高兴为您解答。以下是一个简单的代码案例,用于微信小程序使用腾讯地图在地图上展示点位,并且当点击点位时,在屏幕底部弹出弹窗。
1. 准备工作
需要在微信小程序的开发者平台中创建一个项目,并且注册腾讯地图 API(https://lbs.qq.com/)。
2. 引用腾讯地图 SDK
在小程序的 index.wxml 文件中,可以添加一个标签引用腾讯地图 SDK。
```
<!--在index.wxml文件中添加如下代码-->
<view class="map-container">
<map id="map" longitude="{{longitude}}" latitude="{{latitude}}" show-location scale="13" markers="{{markers}}" bindmarkertap="markertap"></map>
</view>
```
3. 在小程序中添加地图标记
在小程序的 index.js 文件中,可以定义一个 markers 数组,用于存储地图上的标记,并且将这些标记展示在地图上。
```
//在index.js文件中添加如下代码
Page({
data: {
longitude: '', //中心点经度
latitude: '', //中心点纬度
markers: [] //地图标记
},
onLoad() {
const _this = this;
// 获取当前位置
wx.getLocation({
type: 'gcj02',
success(res) {
_this.setData({
longitude: res.longitude,
latitude: res.latitude,
markers: [{
id: 0,
longitude: res.longitude,
latitude: res.latitude,
title: '我的位置',
label: {
content: '我在这里',
bgColor: '#FF0000',
color: '#FFFFFF',
fontSize: 12,
borderRadius: 5,
padding: 5,
display: 'ALWAYS',
textAlign: 'center',
anchorX: 'middle',
anchorY: 'top'
}
}]
});
}
});
}
});
```
4. 在小程序中添加弹窗
在小程序的 index.wxml 文件中,可以添加一个 view 元素来作为弹窗容器,并且在 index.js 文件中定义一个 markertap 方法来处理点击标记事件。
```
<!--在 index.wxml 文件中添加如下代码-->
<view class="map-container">
<map id="map" longitude="{{longitude}}" latitude="{{latitude}}" show-location scale="13" markers="{{markers}}" bindmarkertap="markertap"></map>
<view class="mark">
<view class="mark-title">{{selectedMarker.title}}</view>
<view class="mark-address">{{selectedMarker.address}}</view>
</view>
</view>
```
```
//在 index.js 文件中添加如下代码
Page({
data: {
longitude: '', //中心点经度
latitude: '', //中心点纬度
markers: [], //地图标记
selectedMarker: {} //当前点击的标记
},
onLoad() {
const _this = this;
// 获取当前位置
wx.getLocation({
type: 'gcj02',
success(res) {
_this.setData({
longitude: res.longitude,
latitude: res.latitude,
markers: [{
id: 0,
longitude: res.longitude,
latitude: res.latitude,
title: '我的位置',
label: {
content: '我在这里',
bgColor: '#FF0000',
color: '#FFFFFF',
fontSize: 12,
borderRadius: 5,
padding: 5,
display: 'ALWAYS',
textAlign: 'center',
anchorX: 'middle',
anchorY: 'top'
}
}]
});
}
});
},
markertap(e) {
const _this = this;
// 当前点击的标记
const marker = _this.data.markers[e.markerId];
// 设置选中的标记
_this.setData({
selectedMarker: marker
});
// 显示弹窗
wx.showModal({
title: marker.title,
content: marker.address,
showCancel: false,
success() {
// 点击确定按钮后,清空选中的标记
_this.setData({
selectedMarker: {}
});
}
});
}
});
```
通过以上代码,可以实现一个简单的微信小程序,对腾讯地图上的标记进行点击,并且在屏幕底部弹出弹窗。
阅读全文