vue集成高德地图amap-jsapi-loader的实现

 更新时间:2023年06月09日 15:03:04   作者:一只小可乐吖  
本文主要介绍了vue集成高德地图amap-jsapi-loader的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前往高德地图开发平台高德开放平台 | 高德地图API

一:申请高德key 

去高德官网去创建一个属于自己的地图应用 (得到key和秘钥) 。

首先,我们要注册一个开发者账号,根据实际情况填写,身份写个人:

进入我的应用:         ​​​​​

创建新应用

获取key和密钥

注意: 2021年12月02日后创建的 key 必须配备安全密钥一起使用

二:在vue中使用高德地图

这里使用的是amap-jsapi-loader 。@amap/amap-jsapi-loader是一个用于加载高德地图JavaScript API的工具库。它可以帮助开发者快速、简便地在网页中引入高德地图API,并提供了一些方便的配置选项和回调函数,以便开发者更好地控制地图的加载和初始化过程。该工具库适用于各种前端框架和库,如React、Vue、Angular等。

在项目中应用:

1、控制台安装:

npm i amap-jsapi-loader --save

2、在main.js中配置秘钥

    //配置安全密钥
window._AMapSecurityConfig = {
    securityJsCode: '你的密钥' //*  安全密钥
}

3、项目中创建MapView.vue文件用作地图组件

4、在 MapView.vue 地图组件中创建 div 标签作为地图容器 ,并设置地图容器的 id 属性为 map;

 <div class="content">
        <!-- 用来显示地图 -->
        <!-- 可以不写宽度,但一定要有高度 -->
        <div id="Map" style="height: 500px;">
        </div>
 </div>

5、在地图组件 MapView.vue 中引入 amap-jsapi-loader 

import AMapLoader from '@amap/amap-jsapi-loader';

6、地图初始化函数 initMap,这里简单实现了marker点标记功能

<script>
//引入高德地图
import AMapLoader from '@amap/amap-jsapi-loader';
export default {
    name: 'IndexMap',
    data() {
        return {
            map: null, //地图实例
            markerdom: null,
            marker: [],
            markernum: [
            [108.925107, 34.238578],
            [108.977807, 34.240636],
            [108.977893, 34.20508],
            [108.915065, 34.202951],
            [108.920713, 34.226592],
            ......
            //为了展示,用的写好的数据
        ]                        
        }
    },
    mounted() {
        this.initMap();//调用地图初始化函数:mounted 函数会在 DOM 初始化完成后调用
    },
    methods: {
        initMap() {
            AMapLoader.load({
                key: "", // 申请好的Web端开发者Key,首次调用 load 时必填
                //2.0版本太卡了 ,所以使用的1.4.0版本  其插件也有不同  如:ToolBar
                version: "1.4.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
                resizeEnable: true,
                plugins: [
                    "AMap.ToolBar", //工具条
                    "AMap.Scale", // 比例尺
                    "AMap.Geolocation", //定位
                ], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
            }).then((AMap) => {
                console.log(AMap);
                this.map = new AMap.Map("Map", { //设置地图容器id
                    resizeEnable: true,
                    rotateEnable: true,
                    pitchEnable: true,
                    zoom: 15,
                    pitch: 80,
                    rotation: -15,
                    viewMode: '3D',//开启3D视图,默认为关闭
                    buildingAnimation: true,//楼块出现是否带动画
                    expandZoomRange: true,
                    zooms: [3, 20],
                    center: [108.946651, 34.222718], //初始化地图中心点位置
                });
                this.markerdom = '' +
                    '<div class="custom-content-marker">' +
                    '   <img src="/icon_bike.png">' +
                    '</div>';
                for (let i = 0; i < this.markernum.length; i++) {
                    this.marker.push(new AMap.Marker({
                        position: new AMap.LngLat(this.markernum[i][0], this.markernum[i][1]),// Marker经纬度
                        content: this.markerdom, // 将 html 传给 content
                        offset: new AMap.Pixel(-13, -30) // 以 icon 的 [center bottom] 为原点
                    }));
                }
                this.map.add(this.marker)
                console.log(this.marker);
            }).catch(e => {
                console.log(e);
            })
        }
    }
}
</script>

看一下效果: 

到此这篇关于vue集成高德地图amap-jsapi-loader的实现的文章就介绍到这了,更多相关vue集成高德地图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue中的nextTick方法详解

    Vue中的nextTick方法详解

    Vue的nextTick方法是用来在下次DOM更新周期中执行回调函数的方法,用于DOM操作后获取DOM更新后的状态,使用场景包括异步更新DOM、获取更新后元素的位置等情况,一般结合Vue的异步更新机制和watch监听器使用,实现方式可使用Promise、setTimeout等异步方法
    2023-04-04
  • Vue 理解之白话 getter/setter详解

    Vue 理解之白话 getter/setter详解

    这篇文章主要介绍了Vue getter setter,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • SpringBoot+Vue项目线上买菜系统源码展示

    SpringBoot+Vue项目线上买菜系统源码展示

    本线上买菜系统采用的数据库是Mysql,使用springboot框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点,需要的朋友可以参考下
    2022-08-08
  • vue.js声明式渲染和条件与循环基础知识

    vue.js声明式渲染和条件与循环基础知识

    这篇文章主要为大家详细介绍了vue.js声明式渲染和条件与循环的基础知识,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • vue3 tailwindcss的使用教程

    vue3 tailwindcss的使用教程

    Tailwind是由Adam Wathan领导的TailwindLabs开发的 CSS 框架,这篇文章主要介绍了vue3 tailwindcss的使用,需要的朋友可以参考下
    2023-08-08
  • 打包组件报错:Error:Cannot find module 'vue/compiler-sfc'

    打包组件报错:Error:Cannot find module 'vue/compiler-sfc&ap

    最近遇到这样的问题,vue组件库搭建过程中使用webpack打包组件时报错,本文给大家分享打包组件报错:Error: Cannot find module ‘vue/compiler-sfc‘的解决方法,感兴趣的朋友一起看看吧
    2023-12-12
  • vue实现在进行增删改操作后刷新页面

    vue实现在进行增删改操作后刷新页面

    这篇文章主要介绍了vue实现在进行增删改操作后刷新页面,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • vue cli中env的使用指南

    vue cli中env的使用指南

    众所周知,一个项目在开发、测试与生产环境的各种配置变量是不一样的,但在vue cli 3中通过指令vue create xxx创建的项目取消了默认的 config 和 build 文件夹,这导致刚入手的小伙伴不知道在哪儿配置环境变量,不过官方也提供了相应的配置方法,本文就来介绍一下
    2021-08-08
  • vue2移动端+swiper实现异形的slide方式

    vue2移动端+swiper实现异形的slide方式

    这篇文章主要介绍了vue2移动端+swiper实现异形的slide方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 利用Vue3的Teleport实现模态对话框功能

    利用Vue3的Teleport实现模态对话框功能

    在前端开发中,模态对话框是一种常见的用户交互方式,它能够有效地提示用户、收集信息或确认操作,随着现代框架的演进,Vue 3 的出现为我们提供了更便捷、高效的方式来处理复杂的界面布局,今天,我们将深入探讨如何利用 Vue 3 的新特性 Teleport 来实现模态对话框
    2025-02-02

最新评论