您好,登錄后才能下訂單哦!
本篇內容主要講解“vue怎么使用原生高德地圖”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“vue怎么使用原生高德地圖”吧!
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" ></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 >${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 @click="animates()">點擊去鼎旺中心</div> <div id="container" ></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>
到此,相信大家對“vue怎么使用原生高德地圖”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。