vue 高德地图获取点标记经纬度后解析所在省市区
时间: 2023-08-21 07:04:27 浏览: 401
可以通过高德地图的 JavaScript API 提供的逆地理编码服务来获取点标记所在的省市区信息。具体步骤如下:
1. 在 Vue 组件中引入高德地图 JavaScript API:
```javascript
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=您申请的key值"></script>
```
2. 初始化地图对象,并创建点标记:
```javascript
mounted() {
// 初始化地图对象
this.map = new AMap.Map('map-container', {
zoom: 10,
center: [116.397428, 39.90923]
})
// 创建点标记
this.marker = new AMap.Marker({
position: [116.397428, 39.90923],
map: this.map
})
// 监听点标记点击事件
this.marker.on('click', this.handleMarkerClick)
},
```
3. 在点标记点击事件处理函数中获取经纬度,并调用逆地理编码服务解析省市区信息:
```javascript
methods: {
handleMarkerClick() {
// 获取点标记经纬度
const position = this.marker.getPosition()
// 调用逆地理编码服务解析省市区信息
AMap.plugin('AMap.Geocoder', () => {
const geocoder = new AMap.Geocoder({
city: '全国',
radius: 1000
})
geocoder.getAddress(position, (status, result) => {
if (status === 'complete' && result.regeocode) {
const { province, city, district } = result.regeocode.addressComponent
console.log(`省份:${province},城市:${city},区县:${district}`)
} else {
console.log('获取地址失败')
}
})
})
}
}
```
在逆地理编码服务的回调函数中,可以通过 `result.regeocode.addressComponent` 对象获取到省市区信息。
需要注意的是,如果点标记所在的位置距离城市边界比较远,有可能会出现获取不到地址信息的情况,此时需要调整 `radius` 参数的值来扩大逆地理编码服务的范围。
阅读全文