请你扮演一个微信小程序开发工程师,实现微信小程序用腾讯地图在地图上展示点位,当点击点位在屏幕底部弹出弹框,请你用代码实现一个完整案例
时间: 2024-05-09 12:17:31 浏览: 72
好的,我可以扮演一个微信小程序开发工程师来为您展示这个案例。以下是完整的代码实现:
wxml文件
```html
<!--index.wxml-->
<view class="map">
<map id="maps" latitude="{{latitude}}" longitude="{{longitude}}" markers="{{markers}}" bindmarkertap="markertap"></map>
</view>
<view wx:if="{{showModal}}" class="modal-container">
<view class="modal-mask"></view>
<view class="modal">
<view class="modal-header">
<text class="modal-title">{{title}}</text>
<text class="modal-close" bindtap="hideModal">×</text>
</view>
<view class="modal-body">
{{content}}
</view>
</view>
</view>
```
wxss文件
```css
/*index.wxss*/
.map {
width: 100%;
height: 100%;
}
.modal-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
z-index: 1000;
}
.modal-mask {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,0.5);
z-index: -1;
}
.modal {
width: 80%;
background-color: #fff;
border-radius: 10px;
padding: 20px;
box-shadow: 0 2px 8px rgba(0,0,0,0.15);
z-index: 1;
}
.modal-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.modal-title {
font-size: 24px;
font-weight: bold;
}
.modal-close {
font-size: 24px;
line-height: 1;
color: #999;
}
.modal-body {
font-size: 16px;
color: #666;
line-height: 1.5;
}
```
js文件
```javascript
//index.js
Page({
data: {
showModal: false,
title: '',
content: '',
latitude: 23.099994,
longitude: 113.324520,
markers: [{
id: 1,
latitude: 23.099994,
longitude: 113.324520,
name: 'T.I.T 创意园'
}, {
id: 2,
latitude: 23.099235,
longitude: 113.325077,
name: '广州塔'
}]
},
markertap: function(e) {
var markerId = e.markerId;
var marker = this.data.markers.find(function(m) {
return m.id === markerId;
});
this.setData({
showModal: true,
title: marker.name,
content: '(' + marker.latitude + ', ' + marker.longitude + ')'
});
},
hideModal: function() {
this.setData({
showModal: false
});
}
})
```
这段代码实现了一个微信小程序页面,其中包括一个地图和两个点位标记。当用户点击一个点位标记时,会在页面底部弹出一个弹框,显示点位的名称和经纬度。通过使用微信小程序自带的map组件和markers属性,我们可以很容易地实现这个页面。同时,在弹框方面,我们使用了wx:if来根据showModal变量控制弹框的显示和隐藏,并使用了flex布局来居中弹框。
阅读全文