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>
相关推荐
_下雨天.11 分钟前
HAProxy搭建Web群集
前端
梦想CAD控件13 分钟前
在线CAD开发包图纸转换功能使用指南
前端·javascript·vue.js
费曼学习法13 分钟前
虚拟 DOM 的 Diff 算法:Vue/React 如何实现高效更新
javascript·vue.js
亚空间仓鼠17 分钟前
Ansible之Playbook(三):变量应用
java·前端·ansible
invicinble21 分钟前
前端技术栈整理
前端
码路飞22 分钟前
昨天还在发 Qwen3.5,今天技术负责人就被阿里云赶走了
java·javascript
前端那点事23 分钟前
前端必看!console 调试不只有 log,这 8 个技巧省一半调试时间
vue.js
倾颜27 分钟前
pnpm monorepo 下,如何把 Next.js 应用里的稳定内核拆成内部 workspace 包
前端·react.js·next.js
Devin_chen28 分钟前
发布订阅模式渐进式学习指南
javascript
念格31 分钟前
Flutter 仿微信输入框最佳实践:自适应高度 + 超行数智能切换全屏
前端·flutter