vue如何使用原生高德地图你知道吗
更新时间:2022年2月28日 10:21 点击:594 作者:大得369
1、先在vue项目根目录下新建vue.config.js,这个文件是没有的,vue不提供
module.exports = { configureWebpack: { externals: { 'AMap': 'AMap', // 高德地图配置 'AMapUI': 'AMapUI' } }, }
2、在vue文件index.html中引入高德地图js文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> <title>default</title> </head> <body> <noscript> <strong>We're sorry but default doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> </noscript> <div id="app"></div> <!-- built files will be auto injected --> <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.3&key=你的高德地图key&plugin=AMap.ControlBar"></script> </body> </html>
3、在vue文件中使用
<template> <div class="box"> <div id="container" style="width:1500px; height:900px"></div> </div> </template> <script> import AMap from 'AMap' // 引入高德地图 let map,marker; export default { data() { return { markers : [ { icon: 1, position: [121.506377, 31.243105], name:'张三', }, { icon: 1, position: [121.506077, 31.242105], name:'李四', }, { icon: 1, position: [121.506577, 31.240105], name:'王五', } ] } }, mounted () { this.init() }, methods: { init () { let that = this; map = new AMap.Map('container', { resizeEnable: true, rotateEnable:true, pitchEnable:true, zoom: 17, pitch:50, rotation:-15, viewMode:'3D',//开启3D视图,默认为关闭 buildingAnimation:true,//楼块出现是否带动画 // expandZoomRange:true, zooms:[3,20], center:that.markers[0].position }) AMap.plugin(['AMap.ControlBar',], function(){ // 添加 3D 罗盘控制 map.addControl(new AMap.ControlBar()); }); this.addMarker(this.markers) }, //拖动事件 mapDraw(arriveCoor){ map = new AMap.Map('container', { //map-location是嵌地图div的id resizeEnable: true, //是否监控地图容器尺寸变化 zoom:20, //初始化地图层级 center: arriveCoor //初始化地图中心点 }); // 定位点 this.addMarker(arriveCoor); }, // 实例化点标记 addMarker(arriveCoor) { var _this = this; arriveCoor.forEach(item=>{ marker = new AMap.Marker({ icon: item.icon, //图片ip imageSize: "20px", position: [item.position[0], item.position[1]], // offset: new AMap.Pixel(-13, -30), content:`<div class="custom-content-marker"><span style="display:block;width:200px">${item.name}</span><img src=${mapicon} onclick="clickImgMarker(${item.name})"></div>`, // 设置是否可以拖拽 draggable: true, cursor: 'move', // 设置拖拽效果 // raiseOnDrag: true }); marker.setMap(map); }) }, }, } </script>
5、卫星图动漫切换镜头,动画效果
<template> <div class="box"> <div style="position: absolute;z-index: 10;cursor:pointer" @click="animates()">点击去鼎旺中心</div> <div id="container" style="width: 2400px;height: 920px;"></div> </div> </template> <script> import AMap from 'AMap' // 引入高德地图 var map; export default { data() { return { } }, mounted () { this.init() }, methods: { init () { var _this = this; map = new AMap.Map('container', { resizeEnable: true, rotateEnable:true, pitchEnable:true, zoom: 13, pitch: 65, rotation: 45, viewMode:'3D',//开启3D视图,默认为关闭 buildingAnimation:true,//楼块出现是否带动画 expandZoomRange:true, center:[113.2385,22.96605], layers: [ // 高德默认标准图层 new AMap.TileLayer.Satellite(), // 楼块图层 new AMap.Buildings({ zooms: [16, 18], zIndex: 10, heightFactor: 2 //2倍于默认高度,3D下有效 }), ], }) //定位鼎旺中心 var maskerIn = new AMap.Marker({ position:[113.2385,22.96605], map:map }); var loca = window.loca = new Loca.Container({ map, }); var pl = window.pl = new Loca.PolygonLayer({ zIndex: 120, shininess: 10, hasSide: true, cullface: 'back', depth: true, }); pl.setLoca(loca); map.on('complete', function () { loca.animate.start(); // setTimeout(_this.animates, 2000);//调用镜头动画 }); }, //点击调用精通动漫 animates(){ var speed = 1; loca.viewControl.addAnimates([ // 寻迹 { center: { value: [113.2385,22.96605], control: [[113.2385,22.96605], [113.2385,22.96605]], timing: [0.3, 0, 0.1, 1], duration: 8000 / speed, }, //快速移动,前进 zoom: { value: 17, control: [[0.3, 15], [1, 17]], timing: [0.3, 0, 0.7, 1], duration: 4000 / speed, }, }, { // 环绕 rotation: { value: 270, control: [[0, 0], [1, 270]], timing: [0, 0, 0, 1], duration: 7000 / speed, }, //前进 zoom: { value: 17, control: [[0.3, 16], [1, 17]], timing: [0.3, 0, 0.7, 1], duration: 5000 / speed, }, }], function () { pl.hide(1000); setTimeout(animate, 2000); console.log('结束'); }); }, }, } </script> <style> .amap-e, .amap-maps { width: 100%; height: 100%; outline: none; background: #050b17; } .amap-copyright { display: none!important; left: 77px; height: 16px; bottom: 0; padding-bottom: 2px; font-size: 11px; font-family: Arial,sans-serif; } .amap-copyright, .amap-logo { display: none!important; } </style>
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注猪先飞的更多内容!
原文出处:https://blog.csdn.net/qq_34631220/article/details/123147160
上一篇: Vue标尺插件使用详解
下一篇: Vue实现简单选项卡功能
相关文章
- 这篇文章主要介绍了vue中activated的用法,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下...2021-01-03
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
这篇文章主要介绍了基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23Antd-vue Table组件添加Click事件,实现点击某行数据教程
这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17- 这篇文章主要介绍了Vue基于localStorage存储信息代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-16
- 这篇文章主要介绍了vue 实现动态路由的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-06
- 这篇文章主要介绍了vue 监听 Treeselect 选择项的改变操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-01
- 这篇文章主要介绍了Vue组件跨层级获取组件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-28
- 这篇文章主要介绍了vue 获取到数据但却渲染不到页面上的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-19
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
这篇文章主要介绍了antdesign-vue结合sortablejs实现两个table相互拖拽排序功能,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-09vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
这篇文章主要介绍了vuejs element table 表格添加行,修改,单独删除行,批量删除行操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-18- 这篇文章主要介绍了vue treeselect获取当前选中项的label实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-01
- 这篇文章主要给大家介绍了关于Vue中slot-scope的深入理解,这个教程非常适合初学者,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-17
- 最常见的多环境配置,就是开发环境配置,和生产环境配置,本文主要介绍了vue项目多环境配置的实现,感兴趣的可以了解一下...2021-07-20
vue项目页面嵌入代码块vue-prism-editor的实现
这篇文章主要介绍了vue项目页面嵌入代码块vue-prism-editor的实现,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-30- 这篇文章主要介绍了Vue 3.0 中 jsx 语法使用,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下...2020-11-13
vue Treeselect下拉树只能选择第N级元素实现代码
这篇文章主要介绍了vue Treeselect下拉树只能选择第N级元素实现代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-01解决vue的router组件component在import时不能使用变量问题
这篇文章主要介绍了解决vue的router组件component在import时不能使用变量问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27Ant design vue table 单击行选中 勾选checkbox教程
这篇文章主要介绍了Ant design vue table 单击行选中 勾选checkbox教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-10-25- 这篇文章主要为大家详细介绍了vue实现同时设置多个倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-05-20
- 这篇文章主要介绍了WebStorm无法正确识别Vue3组合式API的解决方案,帮助大家更好的理解和学习使用vue框架,感兴趣的朋友可以了解下...2021-02-18