效果如下
.wxml
<view class="container">
<map class='map' setting="{{setting}}" longitude='{{longitude}}' latitude='{{latitude}}' scale='{{scale}}' markers='{{markers}}' controls="{{controls}}">
<view class="btns">
<block wx:for="{{list}}" wx:key="index">
<text class="btn {{type === item.type ? 'active' : ''}}" catchtap="switchType" data-type="{{item.type}}">{{item.name}}</text>
</block>
</view>
</map>
</view>
.js
Page({
data: {
type: 'map',
list: [
{
name: '地图',
type: 'map'
},
{
name: '卫星',
type: 'satellite'
}
],
longitude: 116.3975,
latitude: 39.9087,
scale: 14,
markers: [
{
id: 1,
joinCluster: true,
longitude: 116.3975,
latitude: 39.9087,
title: '天安门',
width: '20',
height: '30',
}
],
setting: {
showLocation: true,
enableZoom: true,
enableRotate: true,
enableSatellite: false,
enableBuilding: true
}
},
onLoad() { },
switchType(e) {
const { type } = e.currentTarget.dataset
const enableSatellite = type === 'satellite'
this.setData({
type,
'setting.enableSatellite': enableSatellite
})
},
})
.wxss
.map {
width: 100%;
height: 100vh;
}
.btns {
position: absolute;
right: 20rpx;
top: 20rpx;
}
.btn {
padding: 4rpx 10rpx;
background-color: #fff;
font-size: 30rpx;
color: #000;
border: 1rpx solid #000;
}
.btn:last-child {
border-left: none;
}
.btn.active {
background-color: #269aea;
color: #fff;
}