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>
相关推荐
特立独行的猫a6 分钟前
DeepSeek Harness插件和工具的区别介绍及开发入门指南
前端·ai·agent·插件·deepseek·harness
小新讲网安11 分钟前
HTTP请求走私攻击实战:CL.TE与TE.CL绕过前端服务器全解析
服务器·前端·网络·web安全·http·架构·漏洞
风骏时光牛马16 分钟前
AI办公系统异常事件复盘分析
前端
console.log('npc')19 分钟前
React 19 + Vite 企业级前端项目:从零搭建到规范交付
前端·react.js·前端框架
程序员黑豆24 分钟前
Java字符串常量池完全指南:原理、intern()方法与性能优化最佳实践
java·前端·ai编程
光影少年24 分钟前
react离线缓存、图片缓存方案
开发语言·前端·javascript·react native·react.js·缓存·前端框架
Canace30 分钟前
笔记本都合上了,Claude 为什么还能在手机上执行电脑上装的技能?
前端·人工智能·ai编程
cyadyx2 小时前
Vite 比 Webpack 构建效率更高
前端·webpack·node.js·vite
mCell3 小时前
AI 时代 SVG 画图的潜力
前端·agent·svg
我命由我123459 小时前
CesiumJS 笔记 - 获取容器中心点、Cartesian3 clone 方法、修改 Cartesian3 对象的高度
前端·javascript·css·前端框架·html·html5·js