前端vue如何使用高德地圖
首先,注冊(cè)Key
1、注冊(cè)開(kāi)發(fā)者賬號(hào),成為高德開(kāi)放平臺(tái)開(kāi)發(fā)者
2、登陸之后,在進(jìn)入「應(yīng)用管理」 頁(yè)面「創(chuàng)建新應(yīng)用」
3、為應(yīng)用添加 Key,「服務(wù)平臺(tái)」一項(xiàng)請(qǐng)選擇「 Web 端 ( JSAPI ) 」
然后,書(shū)寫(xiě)代碼
在vuecli public文件夾中的index.html添加導(dǎo)入 JS API 的入口腳本標(biāo)簽
<!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='http://www.aoyou183.cn/bcjs/iconLink.png' rel='external nofollow' > <title>高德地圖</title> <!-- 建議將導(dǎo)入的script寫(xiě)在body前面,以便提前加載 --> <script type='text/javascript' src='http://webapi.amap.com/maps?v=2.0&key=d6c35bb2619f107f86ccda4b378415f6&plugin=AMap.MouseTool'></script> <!-- 只是我的key,可以暫時(shí)用為測(cè)試(不定什么時(shí)候失效) --> <script src='https://webapi.amap.com/ui/1.1/main.js?v=1.1.1'></script> <!-- 高德官方文檔的ui庫(kù) --> </head> <body> <div id='app'></div> </body></html>
在vue.config.js中修改配置
module.exports = { publicPath: './', configureWebpack: { externals: { AMap: ’window.AMap’, AMapUI: ’window.AMapUI’ // 高德地圖配置 }, }};
接下來(lái),正式書(shū)寫(xiě)vue組件
廢話不多說(shuō),直接上代碼
<template> <div class='map_wrapper'> <div class='box'> <div style='width: 100%; height: 500px'></div> </div> </div></template><script lang='ts'>import { Vue, Component, Prop, Watch } from ’vue-property-decorator’;@Component({})export default class page extends Vue { // 使用 import AMap from ’amap’; 會(huì)有編輯器報(bào)錯(cuò)Cannot find module ’amap’; 所以變通換一種寫(xiě)法 protected AMap: any = (window as any).AMap; protected AMapUI: any = (window as any).AMapUI; // 如果寫(xiě)在created會(huì)報(bào)錯(cuò) 'Error: Map container div not exist' mounted() { let map = new this.AMap.Map(’container’, {center: [121.227577, 31.101471], // 中心點(diǎn)坐標(biāo)resizeEnable: true, // 是否監(jiān)控地圖容器尺寸變化zoom: 10, // 初始化地圖層級(jí),可以理解為縮放比例showMarker: true, // 定位成功后在定位到的位置顯示點(diǎn)標(biāo)記,默認(rèn):true }); //加載SimpleInfoWindow,loadUI的路徑參數(shù)為模塊名中 ’ui/’ 之后的部分 this.AMapUI.loadUI([’overlay/SimpleInfoWindow’], (SimpleInfoWindow: any) => {let marker = new this.AMap.Marker({ map: map, zIndex: 9999999, position: map.getCenter(),});let infoWindow = new SimpleInfoWindow({ infoTitle: ’<strong>這里是標(biāo)題</strong>’, infoBody: ’<p>這里是內(nèi)容。</p>’, offset: new this.AMap.Pixel(0, -31), // 文本定位偏移});//顯示在map上function openInfoWin() { infoWindow.open(map, marker.getPosition());}marker.on(’click’, () => { openInfoWin(); // 點(diǎn)擊標(biāo)記時(shí)顯示文本});openInfoWin(); }); }}</script><style scoped lang='scss'></style>
頁(yè)面效果如下
以上就是前端vue如何使用高德地圖的詳細(xì)內(nèi)容,更多關(guān)于vue 高德地圖的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
