学会在Vue项目中插入高德地图JS API与地图的相关设置,看这一篇就够了~(保姆级精简教学)

简介: 学会在Vue项目中插入高德地图JS API与地图的相关设置,看这一篇就够了~(保姆级精简教学)

一、案例效果

2ca25b9ec73d4d5ca1b0929b6a8b6870.gif1.gif



二、开发准备

       需要注意想要使用 JS API 必须注册账号并获取 key 值。


1. 注册高德开放平台账号

       正常输入个人信息注册即可。

image.png


2. 创建应用添加 key 值

       注册成功之后,进入控制台,然后点击创建新应用;

image.png


       填写名称应用名称和类型之后就可以看到已创建的应用了;

image.png


       接下来点击“添加”为应用添加 key 值;

image.png


       注意此处我们应选择 Web 端(JS API);

image.png


       点击提交后,key 值获取成功。

image.png


三、项目中使用地图组件

1. npm 获取高德地图 API

       首先在 Vue 项目中通过命令 npm i @amap/amap-jsapi-loader --save 获取高德地图 API; 下载成功之后就可以在自己的项目中使用地图 API 了。

image.png


2. 页面中使用地图 API(案例)

(1)新建 .vue 页面文件并设置容器

<template>
  <!--地图容器-->
  <div id="container"></div>
</template>
<script>
  export default {
    name: "gaode"
  }
</script>
<style scoped>
  #container {
    width: 80%;
    height: 400px;
    margin: 100px auto;
    border: 2px solid red;
  }
</style>

(2)在页面中引入 amap-jsapi-loader 并初始化 map 对象


       样式设置完后在页面中引入 amap-jsapi-loader 并初始化 map 对象;


此处需注意 Vue2 和 Vue3 中引入与初始化方式都是不同的,注意自己的 Vue 版本。查看 Vue 版本在控制台中输入 npm list vue 命令即可;如下,博主用的是 vue2。

image.png


vue2 方式(下文均以此方式为例):

<script>
  import AMapLoader from '@amap/amap-jsapi-loader'; //引入
  export default {
    name: "gaode",
    data() {
      return {
        map: null //初始化 map 对象
      }
    }
  }
</script>

vue3 方式:

<script>
  import {shallowRef} from '@vue/reactivity' //引入
  export default {
    name: "gaode",
    setup() {
      const map = shallowRef(null);
      return {
        map,
      }
    },
  }
</script>

(3)定义地图初始化函数 initMap 并调用


methods: {
      initMap() {
        AMapLoader.load({
          key: "ed2ea36f8564541569c370254845d93d", //此处填入我们注册账号后获取的Key
          version: "2.0", //指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
          plugins: [''], //需要使用的的插件列表,如比例尺'AMap.Scale'等
        }).then((AMap) => {
          this.map = new AMap.Map("container", { //设置地图容器id
            viewMode: "3D", //是否为3D地图模式
            zoom: 5, //初始化地图级别
            center: [105.602725, 37.076636], //初始化地图中心点位置
          });
        }).catch(e => {
          console.log(e);
        })
      },
    },
    mounted() {
      //挂载阶段调用,DOM初始化完成进行地图初始化
      this.initMap();
    }

3. 完整代码+详细注释

<template>
  <div>
    <div id="container"></div>
  </div>
</template>
<script>
  import AMapLoader from '@amap/amap-jsapi-loader';
  export default {
    name: "gaode",
    data() {
      return {
        map: null //初始化 map 对象
      }
    },
    methods: {
      initMap() {
        AMapLoader.load({
          key: "ed2ea36f8564541569c370254845d93d", //此处填入我们注册账号后获取的Key
          version: "2.0", //指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
          plugins: [''], //需要使用的的插件列表,如比例尺'AMap.Scale'等
        }).then((AMap) => {
          this.map = new AMap.Map("container", { //设置地图容器id
            viewMode: "3D", //是否为3D地图模式
            zoom: 5, //初始化地图级别
            center: [105.602725, 37.076636], //初始化地图中心点位置
          });
        }).catch(e => {
          console.log(e);
        })
      },
    },
    mounted() {
      //DOM初始化完成进行地图初始化
      this.initMap();
    }
  }
</script>
<style>
  #container {
    width: 80%;
    height: 400px;
    margin: 100px auto;
    border: 1px solid red;
  }
</style>

四、在地图中添加覆盖物、图层、插件、事件等属性

       经过前三步的配置,一个最基础的高德地图就成型了,但实际应用中仅仅这样肯定是不行的,项目中需求会有很多。所以当我们想要改变它的样式,或者是在地图上添加一些其他属性如图层、点标记、点击事件时,只需在以上代码 this.map = new AMap.Map("container", { } 的同级位置添加相关代码即可。

image.png



我们简单举几个例子:


1. 添加图层

       默认情况下,地图只显示标准底图,如需要叠加别的图层,可以通过map.add方法添加图层。我们试着添加一个卫星图层 TileLayer.Satellite,如下:

image.png



效果如下,原始地图变为卫星地图:

image.png



2. 在地图中使用插件(地图控件)

       JS API 提供了众多的插件功能,这些功能不会主动随着 JSAPI 主体资源下发,需要引入之后才能使用这些插件的功能。在使用插件之前我们需要先将各个插件引入到 plugin 数组中,随后使用 addControl 添加至地图中。


       如下代码添加了图层切换、比例尺和鹰眼三个插件:

image.png


效果如下:

image.png


3. 其他设置

       方法就是以上介绍的方法,大同小异。掌握方法后再设置花里胡哨也就不在话下了,更多属性与插件请参见 JS API 官网:

概述-地图 JS API v2.0 | 高德地图API

高德开放平台官网

https://lbs.amap.com/api/jsapi-v2/summary

相关文章
|
2天前
|
JSON JavaScript 前端开发
设置WebStorm像VSCode一样每行代码结尾自动格式化加入“;”分号(JavaScript、TypeScript格式化)
设置WebStorm像VSCode一样每行代码结尾自动格式化加入“;”分号(JavaScript、TypeScript格式化)
|
2天前
|
JavaScript 定位技术 API
[JS]百度地图设置城市
[JS]百度地图设置城市
13 1
|
2天前
|
API Python
记录openai官网关于Setup your API key for a single project(为单个项目设置API 可以)的错误(2023/11/24)
记录openai官网关于Setup your API key for a single project(为单个项目设置API 可以)的错误(2023/11/24)
19 0
|
2天前
|
JavaScript 前端开发 网络协议
利用Node.js和cpolar实现远程访问,无需公网IP和路由器设置的完美解决方案
利用Node.js和cpolar实现远程访问,无需公网IP和路由器设置的完美解决方案
21 0
|
2天前
|
缓存 运维 Serverless
Serverless 应用引擎产品使用之阿里函数计算中。将本地电脑上的项目文件部署到阿里云函数计算(FC)上并实现对外提供API和WebUI如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
38 1
|
2天前
|
JavaScript 前端开发
JavaScript如何设置定时器,怎么清除定时器
JavaScript如何设置定时器,怎么清除定时器
20 3
|
2天前
|
SQL 自然语言处理 数据挖掘
NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道
NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道
NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道
|
2天前
|
JavaScript API
Vue3新的状态管理库-Pinia(保姆级别教程)
Vue3新的状态管理库-Pinia(保姆级别教程)
55 0
|
2天前
|
存储 JavaScript 定位技术
vue中实现地图与数据表格交互的六种场景(附具体代码示例)
vue中实现地图与数据表格交互的六种场景(附具体代码示例)
63 0
|
2天前
|
JSON Java API
Springboot项目中如何设计一个规范的统一的Restful API 响应框架?
Springboot项目中如何设计一个规范的统一的Restful API 响应框架?
28 1