写一段基于vue-baidu-map拖动bm-marker获取经纬度和详细地址的代码
时间: 2023-12-07 17:54:17 浏览: 90
vue-baidu-map,百度地图切图工具,瓦片图制作利器
以下是一个基于vue-baidu-map拖动bm-marker获取经纬度和详细地址的代码示例:
```
<template>
<div>
<baidu-map ak="your_baidu_map_ak"
@ready="onMapReady"
:center="center"
:zoom="zoom"
style="height: 500px;">
<bm-marker :position="markerPosition"
:label="markerLabel"
:enableDragging="true"
@dragging="onMarkerDragging"
@dragend="onMarkerDragEnd">
</bm-marker>
</baidu-map>
<div v-if="address">{{ address }}</div>
</div>
</template>
<script>
import { BaiduMap, BmMarker } from 'vue-baidu-map'
export default {
components: {
BaiduMap,
BmMarker
},
data() {
return {
center: { lng: 116.404, lat: 39.915 },
zoom: 15,
markerPosition: { lng: 116.404, lat: 39.915 },
markerLabel: {
content: '拖动我获取位置信息',
offset: { width: 30, height: -30 }
},
address: ''
}
},
methods: {
onMapReady(map) {
this.geocoder = new window.BMap.Geocoder()
},
onMarkerDragging(event) {
this.markerPosition = event.point
},
onMarkerDragEnd(event) {
this.markerPosition = event.point
this.getAddress(this.markerPosition)
},
getAddress(point) {
this.geocoder.getLocation(point, result => {
if (result) {
this.address = result.address
}
})
}
}
}
</script>
```
在这个示例中,我们使用了vue-baidu-map组件库来创建一个百度地图实例。然后,我们在地图上放置了一个可拖动的marker,并监听marker的dragging和dragend事件来更新marker的位置并获取对应的详细地址。其中,我们使用了百度地图的Geocoder类来获取地址信息。最后,我们将获取到的地址显示在页面上。
阅读全文