vue图片放大标注小红点
时间: 2023-12-26 19:27:57 浏览: 35
根据提供的引用内容,可以使用百度地图的Marker类来实现在Vue中放大图片并标注小红点的功能。下面是一个简单的示例代码:
```vue
<template>
<div>
<img :src="imageUrl" @click="showMap = true" style="cursor: pointer;">
<div v-if="showMap">
<div id="mapContainer" style="width: 100%; height: 400px;"></div>
<button @click="addMarker">添加标注</button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
imageUrl: 'path/to/image.jpg',
showMap: false,
map: null,
marker: null
};
},
mounted() {
this.initMap();
},
methods: {
initMap() {
this.map = new BMap.Map('mapContainer');
this.map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
this.map.enableScrollWheelZoom(true);
},
addMarker() {
const point = this.map.getCenter();
this.marker = new BMap.Marker(point, { enableDragging: true });
this.map.addOverlay(this.marker);
this.marker.addEventListener('dragend', this.onMarkerDragEnd);
},
onMarkerDragEnd(event) {
const point = event.point;
console.log('标注位置:', point.lng, point.lat);
}
}
};
</script>
```
在上述代码中,我们首先在Vue组件中引入了百度地图,并在`mounted`钩子函数中初始化了地图。当用户点击图片时,会显示地图和一个添加标注的按钮。点击按钮后,会在地图上添加一个可拖拽的小红点标注,并且在拖拽结束后会触发`dragend`事件,我们可以在事件处理函数中获取标注的位置坐标。
请注意,上述代码仅为示例,实际使用时需要根据具体需求进行适当的修改和调整。