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>
相关推荐
JIngJaneIL7 分钟前
助农惠农服务平台|助农服务系统|基于SprinBoot+vue的助农服务系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·助农惠农服务平台
云外天ノ☼12 分钟前
待办事项全栈实现:Vue3 + Node.js (Koa) + MySQL深度整合,构建生产级任务管理系统的技术实践
前端·数据库·vue.js·mysql·vue3·koa·jwt认证
gihigo199812 分钟前
使用JavaScript和Node.js构建简单的RESTful API
javascript·node.js·restful
一位搞嵌入式的 genius16 分钟前
前端实战开发(三):Vue+Pinia中三大核心问题解决方案!!!
前端·javascript·vue.js·前端实战
塞纳河畔的歌16 分钟前
保姆级教程 | 麒麟系统安装Edge浏览器
前端·edge
前端.火鸡18 分钟前
Vue 3.5 新API解析:响应式革命、SSR黑科技与开发体验飞跃
javascript·vue.js·科技
多睡觉觉18 分钟前
数据字典:从"猜谜游戏"到"优雅编程"的奇幻之旅
前端
嗝屁小孩纸21 分钟前
开发集成热门小游戏(vue+js)
前端·javascript·vue.js
赛博切图仔26 分钟前
深入理解 package.json:前端项目的 “身份证“
前端·javascript
UIUV30 分钟前
JavaScript 学习笔记:深入理解 map() 方法与面向对象特性
前端·javascript·代码规范