vue-amap地图组件上的折线以及高德地图经纬度的引入

vue

1.如何在项目中安装组件

首先在你的项目中打开控制台运行下面的代码

npm install vue-amap --save

然后在项目中的src文件夹里创建一个文件夹plugins,里面创建一个index.vue的文件,用来引入高德UI组件库

这个index.vue里面这样写:

import Vue from \'vue\'

import VueAMap from \'vue-amap\'

VueAMap.initAMapApiLoader({

key: \'ea5c57977d76a95e455c43266788****\',//这个key是你在高德api中申请的key,其它的上下都一样

plugin: [\'AMap.Autocomplete\', \'AMap.PlaceSearch\', \'AMap.Scale\', \'AMap.OverView\', \'AMap.ToolBar\', \'AMap.MapType\', \'AMap.PolyEditor\', \'AMap.CircleEditor\', \'AMap.zoom\'],

// 默认高德 sdk 版本为 1.4.4

v: \'1.4.4\',

})

Vue.use(VueAMap)

然后在main.js中引入: import \'@/plugins\'

2.高德api上的经纬度查询(可以根据自己想要的路线描绘,自己有高德的key和路线接口可以跳过)

1.首先登录认证获取key:

https://lbs.amap.com/api/webservice/guide/create-project/get-key

2.然后在官网首页右上角头像点击自定义地图平台

3.然后点击左侧数据中心,我的数据集,点击创建数据库

 4.随便输入一个名字,确认创建,创建好了后点名称,进入到地图,

点击绘制线,然后就可以在上面绘制自己想要的路线,绘制好后,点击当前绘制的线,,右侧的侧边栏中点击GeoJSON,里面的经纬度就有了,把一对对的经纬度按顺序放进代码中的path数组

3.实现地图上折线的详细代码

<template>

<div class="gui-ji">

<a @click="$router.back()">调度单管理/轨迹管理</a>

<el-amap vid="amap"

:zoom="zoom"

:center="center"

class="amap-demo">

<el-amap-polyline v-for="prod in polyline"

:key="prod.id"

:editable="prod.editable"

:path="prod.path"

outlineColor=\'#fff000\'

strokeWeight=\'8\'

:events="prod.events"></el-amap-polyline>

</el-amap>

<div class="toolbar">

<button type="button"

name="button"

v-on:click="changeEditable">change editable</button>

</div>

</div>

</template>

<script>

export default {

data() {

return {

zoom: 14,

center: [104.065768, 30.657452],

polyline: [

{

id: \'1\',

path: [//第一条线的经纬度集合

[104.114026, 30.65119],

[104.086022, 30.66433],

[104.074141, 30.645897],

[104.061836, 30.647175],

[104.056745, 30.649365],

[104.054835, 30.69765],

[104.041258, 30.641882],

[104.041046, 30.651738],

[104.041046, 30.651738],

],

events: {//在地图上打点连线的方法

click(e) {

alert(\'click polyline\')

},

end: (e) => {

const newPath = e.target

.getPath()

.map((point) => [point.lng, point.lat])

console.log(newPath)

},

},

editable: false,

},

{

id: \'2\',

path: [//第二条线的经纬度集合

[104.045351, 30.64361],

[104.044797, 30.643349],

[104.044502, 30.643254],

[104.044123, 30.64312],

[104.0439, 30.643059],

[104.043689, 30.642958],

[104.04346, 30.642849],

[104.043225, 30.642751],

[104.043023, 30.642652],

[104.042878, 30.642587],

[104.042688, 30.642507],

[104.042488, 30.642424],

[104.042131, 30.642265],

[104.041985, 30.642209],

[104.041877, 30.642151],

[104.041747, 30.642092],

[104.041643, 30.64204],

[104.041564, 30.641987],

[104.041464, 30.641938],

[104.04143, 30.641887],

[104.041356, 30.641841],

[104.041355, 30.641762],

[104.041368, 30.641623],

[104.041382, 30.641563],

[104.041399, 30.641477],

[104.041442, 30.641359],

[104.041463, 30.641295],

[104.041525, 30.641206],

[104.041557, 30.641104],

[104.041618, 30.641011],

[104.041723, 30.64086],

[104.04177, 30.640764],

[104.041854, 30.640668],

[104.041919, 30.640581],

[104.041966, 30.640546],

[104.042013, 30.640469],

[104.042078, 30.640399],

[104.042136, 30.640338],

[104.04218, 30.64029],

[104.042303, 30.640162],

[104.042357, 30.640101],

[104.042492, 30.639969],

[104.042579, 30.639895],

[104.042638, 30.639827],

[104.042718, 30.639759],

[104.042794, 30.639681],

[104.042871, 30.639595],

[104.042932, 30.639543],

[104.042991, 30.639488],

[104.043034, 30.639459],

[104.043131, 30.639527],

[104.043206, 30.639567],

[104.043269, 30.639601],

[104.043366, 30.639657],

[104.043508, 30.639791],

[104.043546, 30.639835],

[104.043587, 30.639847],

[104.043609, 30.639824],

[104.043681, 30.639753],

[104.043736, 30.639708],

[104.04379, 30.639662],

[104.043837, 30.639614],

[104.04388, 30.639572],

[104.043877, 30.639572],

],

events: {

click(e) {

alert(\'click polyline\')

},

end: (e) => {

const newPath = e.target

.getPath()

.map((point) => [point.lng, point.lat])

console.log(newPath)

},

},

editable: false,

},

],

}

},

methods: {

changeEditable() {

this.polyline.editable = !this.polyline.editable

},

},

}

</script>

<style lang="less" scoped>

.amap-demo {

height: 500px;

width: 100%;

}

.amap-page-container {

position: relative;

}

#info-window {

width: 211px;

height: 146px;

margin-left: 30px;

background: rgba(255, 255, 255, 0.9);

border-radius: 4px;

position: relative;

overflow: hidden;

}

.detail {

width: 80%;

height: 24px;

color: #fff;

background-color: #1a73e8;

position: absolute;

bottom: 0;

font-size: 12px;

line-height: 24px;

text-align: center;

cursor: pointer;

}

</style>

里面很多vue-amap的api指令,可以去官方文档看,好像vue-amap的官方文档没有实例,所以找了很久的例子自己才把想要的效果做出来。

放图:

以上是 vue-amap地图组件上的折线以及高德地图经纬度的引入 的全部内容, 来源链接: utcz.com/z/379711.html

回到顶部