俗话说授人以鱼不如授人以渔,直接记录代码的话实在是有些简单粗暴了,因此在开篇直接不妨跟着我的这篇博客从零开始将vue-amap
组件添加到我们的项目中吧~
安装vue-amap
:
npm install vue-amap --save
Vue中推荐在main.js
中进行引入:
import Vue from 'vue';
import VueAMap from 'vue-amap';
import App from './App.vue';
Vue.use(VueAMap);
VueAMap.initAMapApiLoader({
key: 'your amap key',
plugin: ['AMap.Autocomplete', 'AMap.PlaceSearch', 'AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.MapType', 'AMap.PolyEditor', 'AMap.CircleEditor'],
// 默认高德 sdk 版本为 1.4.4
v: '1.4.4'
});
new Vue({
el: '#app',
render: h => h(App)
})
毕竟只是安装引入了组件并没有什么卵用,还是需要高德开发账号的:
申请成为个人开发者后,在控制台创建一个应用,类型为:web服务,如下图所示:
能够看到我们可使用的服务非常的多,就是他了!
创建完毕后,生成一个secret_key
,我们后续的很多功能是离不开secret_key
的。
接下来我们可以正式的在Vue中使用高德地图的组件了。方法如下:
demo.vue
<template>
<div class="amp-demo">
<el-amap vid="amap" :zoom="zoom" :center="center" class="amap-demo" v-if="reFresh">
<!-- 点坐标 -->
<el-amap-marker :position="marker.position" :visible="marker.visible" :draggable="marker.draggable" vid="index" ></el-amap-marker>
<el-amap-marker :position="marker2.position" :visible="marker2.visible" :draggable="marker2.draggable" vid="index2"></el-amap-marker>
<!-- 标记文本 -->
<el-amap-text v-for="(text,index) in texts" :key="index" :text="text.text" :offset="text.offset" :position="text.position" :events="text.events"></el-amap-text>
<!-- 折线路径 -->
<el-amap-polyline :editable="polyline.editable" :path="polyline.path" ></el-amap-polyline>
</el-amap>
</div>
</template>
<script>
export default {
name: 'demo',
data() {
return {
reFresh:true,
slotStyle: {
padding: '2px 8px',
background: '#eee',
color: '#333',
border: '1px solid #aaa'
},
zoom: 12,
center: [121.5273285, 31.25515044],
polyline: {
path: [[121.5389385, 31.21515044], [121.5273285, 31.21515044]],
editable: false
},
marker: {
position: [121.5273285, 31.21515044],
visible: true,
draggable: false,
content:'2',
template: '2',
},
marker2: {
position: [121.5273285, 31.21515044],
visible: true,
draggable: false,
content:'1',
template: '1',
},
texts: [
{
position: [121.5273285, 31.21515044],
text: '收货地',
offset: [0, -70],
},
{
position: [121.5273285, 31.21515044],
text: '发货地',
offset: [0, -70],
},
],
}
},
methods: {
menuTree(){
this.reFresh= false
this.$nextTick(()=>{
this.reFresh = true
})
},
}
};
</script>
这样就可以生成一个高德地图了。
emm基本上的效果是和上图一致的,只不过是我修改了zoom
这个属性。
需要注意:
一定要设置宽高,不然地图不会显示。或者给外面套一个div
,给div
设置宽高也行。
还有许多可供调用的组件,我们都可以在这里找到使用说明书!vue-amap的使用文档
左侧的这些组件就是我们需要的啦,可以从中选取我们需要的组件,添加到vue-amap
下面,再根据文档中提到的一些属性我们进行对应的设置,就可以正常的使用啦!