uniapp 点击marker出现callout
时间: 2023-08-01 12:12:31 浏览: 178
您可以在uniapp中使用以下代码来实现点击marker弹出callout:
```
<template>
<view class="map">
<map :latitude="latitude" :longitude="longitude" @tap="onTap" :markers="markers"></map>
</view>
</template>
<script>
export default {
data() {
return {
latitude: 39.92,
longitude: 116.46,
markers: [
{
id: 1,
latitude: 39.92,
longitude: 116.46,
title: 'Marker',
iconPath: '/static/images/location.png',
width: 50,
height: 50,
callout: {
content: 'Hello Uniapp',
color: '#ffffff',
fontSize: 16,
borderRadius: 10,
bgColor: '#000000',
padding: 10,
display: 'ALWAYS'
}
}
]
}
},
methods: {
onTap(e) {
const { markerId } = e
if (markerId === 1) {
this.markers[0].callout.display = 'ALWAYS'
this.markers = [...this.markers]
}
}
}
}
</script>
<style>
.map {
width: 100%;
height: 100%;
}
</style>
```
注意:在markers数组中,需要设置callout对象来定义callout的样式和内容,在onTap方法中,根据markerId来判断是否点击了对应的marker,然后将该marker的callout.display属性设置为'ALWAYS',以显示callout。最后需要使用解构赋值的方式更新markers,来使得页面重新渲染。
阅读全文