首页 教程 Web前端 在vue3项目中如何使用新版高德地图

在vue3项目中如何使用新版高德地图

vue3项目中如何使用新版高德地图,本文详细介绍vue3项目中使用高德地图的方法。

1、首先你要注册好账号登录

在vue3项目中如何使用新版高德地图

2、获取key和密钥 

在vue3项目中如何使用新版高德地图

在vue3项目中如何使用新版高德地图

自2021年12月02日升级,升级之后所申请的 key 必须配备安全密钥 jscode 一起使用

在vue3项目中如何使用新版高德地图

NPM方式安装和使用(基础版):         

按 NPM 方式安装使用 Loader :

npm i @amap/amap-jsapi-loader --save

在页面中通过NPM 方式安装的使用 :

<template>     <div class="app-container">         <div style="background-color: #ffffff;">             <div id="container"></div>         </div>     </div> </template>    <script setup> import AMapLoader from '@amap/amap-jsapi-loader'; /*在Vue3中使用时,需要引入Vue3中的shallowRef方法(使用shallowRef进行非深度监听, 因为在Vue3中所使用的Proxy拦截操作会改变JSAPI原生对象,所以此处需要区别Vue2使用方式对地图对象进行非深度监听, 否则会出现问题,建议JSAPI相关对象采用非响应式的普通对象来存储)*/ import { shallowRef } from '@vue/reactivity'; import {ref} from "vue";    // const map = shallowRef(null); const path = ref([]); const current_position = ref([]);    function initMap() {     window._AMapSecurityConfig = {         securityJsCode: '8e920f73eb2e6880a92ea6662eefc476',     }     AMapLoader.load({         key:"e4e3d44a98350790a1493450032bbec5", // 申请好的Web端开发者Key,首次调用 load 时必填         version:"2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15         plugins:[''], // 需要使用的的插件列表,如比例尺'AMap.Scale'等     }).then((AMap)=>{         const map = new AMap.Map("container",{  //设置地图容器id             viewMode:"3D",    //是否为3D地图模式             zoom:13,           //初始化地图级别             center:[113.808299,34.791787], //初始化地图中心点位置         });               }).catch(e=>{         console.log(e);     }) }        initMap() </script>    <style> #container{     padding:0px;     margin: 0px;     width: 100%;     height: 800px; } </style>

完整代码:

<template>     <div class="app-container">         <div style="background-color: #ffffff;">             <div id="container"></div>         </div>     </div> </template>    <script setup> import AMapLoader from '@amap/amap-jsapi-loader'; /*在Vue3中使用时,需要引入Vue3中的shallowRef方法(使用shallowRef进行非深度监听, 因为在Vue3中所使用的Proxy拦截操作会改变JSAPI原生对象,所以此处需要区别Vue2使用方式对地图对象进行非深度监听, 否则会出现问题,建议JSAPI相关对象采用非响应式的普通对象来存储)*/ import { shallowRef } from '@vue/reactivity'; import {ref} from "vue";    // const map = shallowRef(null); const path = ref([]); const current_position = ref([]);       function initMap() {     window._AMapSecurityConfig = {         securityJsCode: '8e920f73eb2e6880a92ea6662eefc476',     }     AMapLoader.load({         key:"e4e3d44a98350790a1493450032bbec5", // 申请好的Web端开发者Key,首次调用 load 时必填         version:"2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15         // plugins:[''], // 需要使用的的插件列表,如比例尺'AMap.Scale'等     }).then((AMap)=>{         const map = new AMap.Map("container",{  //设置地图容器id             viewMode:"3D",    //是否为3D地图模式             zoom:13,           //初始化地图级别             center:[113.808299,34.791787], //初始化地图中心点位置         });         // 添加插件         AMap.plugin(["AMap.ToolBar", "AMap.Scale", "AMap.HawkEye","AMap.Geolocation","AMap.MapType","AMap.MouseTool"], function () {             //异步同时加载多个插件             // 添加地图插件             map.addControl(new AMap.ToolBar()); // 工具条控件;范围选择控件             map.addControl(new AMap.Scale()); // 显示当前地图中心的比例尺             map.addControl(new AMap.HawkEye()); // 显示缩略图             map.addControl(new AMap.Geolocation()); // 定位当前位置             map.addControl(new AMap.MapType()); // 实现默认图层与卫星图,实时交通图层之间切换                // 以下是鼠标工具插件             const mouseTool = new AMap.MouseTool(map);             // mouseTool.rule();// 用户手动绘制折线图,测量距离             mouseTool.measureArea(); // 测量面积         });         // 单击         map.on('click',(e) => {             // lng ==> 经度值  lat => 维度值             current_position.value = [e.lnglat.lng,e.lnglat.lat];             path.value.push([e.lnglat.lng,e.lnglat.lat]);             // addMarker();             // addPolyLine();         })               // 实例化点标记         // 第一种(封成函数来触发)         function addMarker() {             const marker = new AMap.Marker({                 icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png",                 position: current_position.value, // 这里我们通过上面的点击获取经纬度坐标,实时添加标记                 // 通过设置 offset 来添加偏移量                 offset: new AMap.Pixel(-26, -54),             });             marker.setMap(map);         }         // 第二种 直接写死 position 的经纬度值         /*const marker = new AMap.Marker({             icon: "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png",             position: [113.808299,34.791787],             // 通过设置 offset 来添加偏移量             offset: new AMap.Pixel(-26, -54),         });         marker.setMap(map);*/               // 折线         function addPolyLine() {             const polyline = new AMap.Polyline({                 path: path.value,                 isOutline: true,                 outlineColor: "#ffeeff",                 borderWeight: 1,                 strokeColor: "#3366FF",                 strokeOpacity: 0.6,                 strokeWeight: 5,                 // 折线样式还支持 'dashed'                 strokeStyle: "solid",                 // strokeStyle是dashed时有效                 // strokeDasharray: [10, 5],                 lineJoin: "round",                 lineCap: "round",                 zIndex: 50,             });             map.add([polyline]);         }              }).catch(e=>{         console.log(e);     }) }    initMap() </script>    <style> #container{     padding:0px;     margin: 0px;     width: 100%;     height: 800px; } </style>

地图插件效果图:

在vue3项目中如何使用新版高德地图

实例化点标记 :

第一种方式效果:

在vue3项目中如何使用新版高德地图

第二种方式效果:

在vue3项目中如何使用新版高德地图

矢量图 --> 折线:

在vue3项目中如何使用新版高德地图

感谢各位的阅读,以上就是“在vue3项目中如何使用新版高德地图”的内容了,经过本文的学习后,相信大家对在vue3项目中如何使用新版高德地图这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。

评论(0)条

提示:请勿发布广告垃圾评论,否则封号处理!!

    猜你喜欢
    【MySQL】用户管理

    【MySQL】用户管理

     服务器/数据库  2个月前  2.15k

    我们推荐使用普通用户对数据的访问。而root作为管理员可以对普通用户对应的权限进行设置和管理。如给张三和李四这样的普通用户权限设定后。就只能操作给你权限的库了。

    Cursor Rules 让开发效率变成10倍速

    Cursor Rules 让开发效率变成10倍速

     服务器/数据库  2个月前  1.21k

    在AI与编程的交汇点上,awesome-cursorrules项目犹如一座灯塔,指引着开发者们驶向更高效、更智能的编程未来。无论你是经验丰富的老手,还是刚入行的新人,这个项目都能为你的编程之旅增添一抹亮色。这些规则文件就像是你私人定制的AI助手,能够根据你的项目需求和个人偏好,精确地调教AI的行为。突然间,你会发现AI不仅能理解Next.js的最佳实践,还能自动应用TypeScript的类型检查,甚至主动提供Tailwind CSS的类名建议。探索新的应用场景,推动AI辅助编程的边界。

    探索Django 5: 从零开始,打造你的第一个Web应用

    探索Django 5: 从零开始,打造你的第一个Web应用

     服务器/数据库  2个月前  1.12k

    Django 是一个开放源代码的 Web 应用程序框架,由 Python 写成。它遵循 MVT(Model-View-Template)的设计模式,旨在帮助开发者高效地构建复杂且功能丰富的 Web 应用程序。随着每个版本的升级,Django 不断演变,提供更多功能和改进,让开发变得更加便捷。《Django 5 Web应用开发实战》集Django架站基础、项目实践、开发经验于一体,是一本从零基础到精通Django Web企业级开发技术的实战指南《Django 5 Web应用开发实战》内容以。

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

    MySQL 的mysql_secure_installation安全脚本执行过程介绍

     服务器/数据库  2个月前  1.08k

    mysql_secure_installation 是 MySQL 提供的一个安全脚本,用于提高数据库服务器的安全性

    【MySQL基础篇】概述及SQL指令:DDL及DML

    【MySQL基础篇】概述及SQL指令:DDL及DML

     服务器/数据库  2个月前  482

    数据库是长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库不仅仅是数据的简单堆积,而是遵循一定的规则和模式进行组织和管理的。数据库中的数据可以包括文本、数字、图像、音频等各种类型的信息。

    Redis中的哨兵(Sentinel)

    Redis中的哨兵(Sentinel)

     服务器/数据库  2个月前  308

    ​ 上篇文章我们讲述了Redis中的主从复制(Redis分布式系统中的主从复制-CSDN博客),本篇文章针对主从复制中的问题引出Redis中的哨兵,希望本篇文章会对你有所帮助。