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>
相关推荐
光影少年1 分钟前
react中redux的connect作用是什么
前端·react.js·前端框架
芋头莎莎11 分钟前
基于MQTT通讯UNIapp程序解析JSON数据
前端·uni-app·json
2601_9498477516 分钟前
Flutter for OpenHarmony 剧本杀组队App实战:邀请好友功能实现
开发语言·javascript·flutter
weixin_4365250727 分钟前
若依多租户版: 页面新增菜单, 执行菜单SQL
前端·数据库·sql
FITA阿泽要努力34 分钟前
Agent Engineer-Day 1 初始智能体与大语言模型基础
java·前端·javascript
霸王蟹37 分钟前
Uni-app 跨端开发框架Unibest快速体验
前端·笔记·微信·uni-app·unibest
zihan032137 分钟前
element-plus, el-table 表头按照指定字段升降序的功能实现
前端·vue.js·状态模式
三翼鸟数字化技术团队41 分钟前
watchEffect的两种错误用法
前端·javascript·vue.js
局外人LZ44 分钟前
Decimal.js 完全指南:解决前端数值精度痛点的核心方案
开发语言·前端·javascript
飘若随风1 小时前
JS学习系列-01-什么是JS
开发语言·javascript·学习