vue中用高德地图根据指定的经纬度在地图上显示并标记这个点,请给我完整的代码
时间: 2024-03-11 21:49:14 浏览: 367
好的,下面是在Vue中使用高德地图显示并标记指定经纬度的完整代码:
首先,在Vue项目中安装高德地图SDK:
```
npm install --save @amap/amap-jsapi-loader
```
然后,在需要显示地图的组件中,引入高德地图SDK并初始化地图:
```html
<template>
<div id="mapContainer"></div>
</template>
<script>
import { Loader } from '@amap/amap-jsapi-loader';
export default {
name: 'Map',
data() {
return {
map: null, // 地图对象
marker: null, // 标记点对象
center: [116.397428, 39.90923], // 默认中心点坐标
}
},
mounted() {
this.initMap();
},
methods: {
async initMap() {
const loader = new Loader({
key: 'your_amap_key',
version: '2.0',
plugins: ['AMap.Geocoder'],
});
try {
const AMap = await loader.load();
this.map = new AMap.Map('mapContainer', {
zoom: 13,
center: this.center,
});
this.addMarker(this.center);
} catch (error) {
console.log(error);
}
},
addMarker(position) {
this.marker = new AMap.Marker({
position,
map: this.map,
});
},
},
}
</script>
<style>
#mapContainer {
height: 500px;
}
</style>
```
在上面的代码中,我们首先通过 `@amap/amap-jsapi-loader` 库引入高德地图SDK,并在 `initMap` 方法中初始化地图对象,并将其挂载到页面上指定的 `div` 元素上。这里我们设置了默认的中心点坐标和缩放级别,你可以根据自己的需求进行修改。
接下来,在 `addMarker` 方法中添加标记点对象,并指定其坐标和所属地图对象。注意,这里的 `AMap` 对象是在 `initMap` 方法中通过 `await loader.load()` 异步加载的。
最后,我们在模板中添加一个 `div` 元素作为地图容器,并设置其高度以适应地图的显示。
当你需要显示指定经纬度的位置时,只需要在 `initMap` 方法中将 `center` 数据属性改为指定的经纬度即可,例如:
```javascript
this.center = [116.397428, 39.90923];
```
这样,在地图初始化时会以指定的经纬度为中心点显示地图,并在该位置添加一个标记点。
阅读全文