Vue——高德地图

1.官网上需要注册并登录高德地图开放平台,申请密钥(如图1)。(高德地图官网)选择Web端,添加成功后,可以获取到(图2)key和密钥

2.Vue项目终端安装地图加载包

npm i @amap/amap-jsapi-loader --save 或者

yarn add @amap/amap-jsapi-loader --save

3.在main.js引入地图、使用

javascript 复制代码
import VueAMap from 'vue-amap';
 
// 初始化vue-amap
Vue.use(VueAMap);
 
// 设置高德API密钥
VueAMap.initAMapApiLoader({
    key: '0xxxxxxxxx876', // 这里将'key'替换成自己的高德API密钥
    plugin: ['AMap.Geolocation'], // 加载所需的插件
});

4.新建mapContainer.vue文件

javascript 复制代码
<template>
  <div id="mapContainer">mapContainer</div>
</template>

<script>
import VueAMap from 'vue-amap';
 
// 初始化vue-amap
// Vue.use(VueAMap);
 
// 设置高德API密钥
VueAMap.initAMapApiLoader({
    key: '034df9a2cc131b871b5a083a05e8a876', // 这里将'your_api_key'替换成自己的高德API密钥
    plugin: ['AMap.Geolocation'], // 加载所需的插件
});
// 设置安全密钥
window._AMapSecurityConfig = {
  securityJsCode: "034df9a2cc131b871b5a083a05e8a876",
};
export default {
  name: "MapContainer",
  data() {
    return {
    };
  },
    mounted() {
    setTimeout(() => {
      const map = new AMap.Map('mapContainer'); // 创建地图对象
      
      // 获取当前位置信息
      AMap.plugin(['AMap.Geolocation'], () => {
        var geolocation = new AMap.Geolocation();
        
        geolocation.getCurrentPosition((status, result) => {
          if (status === 'complete') {
            console.log(result,'36'); // 输出当前位置信息
            
            // 添加标记到地图上
            var marker = new AMap.Marker({
              position: [result.position.lng, result.position.lat],
              map: map,
            });
          } else {
            console.error('定位失败!');
          }
        });
      });
    });
  },
  methods: {
   
  },
};
</script>

<style lang="less" scoped>
#mapContainer {
  width: 100%;
  height: 100%;
}

</style>

5.页面引入地图页面

javascript 复制代码
<template>
  <div class="demoManage">
    demoManagedemoManage、

    <div class="map_box"><MapContainer></MapContainer></div>
  </div>
</template>

<script>
import MapContainer from "../../components/MapContainer.vue";
export default {
  name: "demoManage",
  components: {
    MapContainer,
  },
  data() {
    return {};
  },
};
</script>

<style lang="scss" scoped>
.demoManage{
  height: 100%;

.map_box {
  width: 100%;
  height: 100%;
}
}

</style>
相关推荐
AALoveTouch4 分钟前
大麦APP抢票揭秘
javascript
持久的棒棒君28 分钟前
启动electron桌面项目控制台输出中文时乱码解决
前端·javascript·electron
小离a_a1 小时前
使用原生css实现word目录样式,标题后面的...动态长度并始终在标题后方(生成点线)
前端·css
郭优秀的笔记2 小时前
抽奖程序web程序
前端·css·css3
布兰妮甜2 小时前
CSS Houdini 与 React 19 调度器:打造极致流畅的网页体验
前端·css·react.js·houdini
小小愿望2 小时前
ECharts 实战技巧:揭秘 X 轴末项标签 “莫名加粗” 之谜及破解之道
前端·echarts
小小愿望3 小时前
移动端浏览器中设置 100vh 却出现滚动条?
前端·javascript·css
fail_to_code3 小时前
请不要再只会回答宏任务和微任务了
前端
摸着石头过河的石头3 小时前
taro3.x-4.x路由拦截如何破?
前端·taro
lpfasd1233 小时前
开发Chrome/Edge插件基本流程
前端·chrome·edge