高德地图API入门使用vue

本文介绍了如何在Vue项目中集成高德地图,包括在高德开放平台申请web端key,下载并使用AMap-jsapi-loader,以及提供了一个包含完整代码的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最终效果

页面显示高德地图
在这里插入图片描述

一、在高德的开放平台申请key

在高德的开放平台申请key: https://console.amap.com/dev/key/app
申请的类型为web端(js api)
否则会报错:<AMap JSAPI> KEY异常,错误信息:USERKEY_PLAT_NOMATCH
在这里插入图片描述

二、下载依赖:

npm install @amap/amap-jsapi-loader

三、完整代码


<template>  
    <div>      <div id="container" ref="amap"></div>  
    </div></template>  
  
<script>  
  import AMapLoader from '@amap/amap-jsapi-loader';  
  export default {  
    name: "Class",  
    data() {  
      return {  
  
      };  
    },  
    created() {  
      this.initAMap();  
  
  
  
    },  
    methods: {  
  
      initAMap() {  
        AMapLoader.load({  
          key: '', // 申请好的key
          version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15          plugins: []  // 需要使用的的插件列表,如比例尺'AMap.Scale'等,如果是地图控件,必须再 map.addControl添加  
        })  
          .then((AMap) => {  
            this.map = new AMap.Map('container', {  
              // 设置地图容器id  
              //viewMode: '3D', // 默认2d地图模式  
              zoom: 12, // 初始化地图级别  
              zooms: [5, 30], // 地图缩放范围  
              // 可以设置初始化当前位置  
              center: [116.397428, 39.90923] // 初始化地图位置  
            })  
          })  
      },  
  
  
    }  
  };  
</script>  
  
<style scoped lang="scss">  
  #container {  
    padding: 0px;  
    margin: 0px;  
    width: 100%;  
    height: 900px;  
  }  
</style>

### 如何在 UniApp 中集成和使用高德地图 API #### 准备工作 为了能够在 UniApp 项目中顺利集成并使用高德地图 API,需先完成准备工作。这包括获取应用所需的密钥以及安装必要的依赖项。 - **申请 Web API Key** 访问[高德开放平台](https://lbs.amap.com/)注册账号,并创建新的应用程序来获得专属的Web服务API key[^1]。 - **下载 amap-wx.js 插件** 进入官方提供的链接——《高德地图微信小程序插件文档入门指南》中的资源页面下载 `amap-wx.js` 文件至项目的 plugin 或 utils 文件夹下。 #### 初始化配置 接下来,在 main.js 中引入 AMap SDK 并初始化全局变量以便后续调用: ```javascript import Vue from 'vue'; // 导入SDK核心类库 import { AMapLoader } from '@amap/amap-jsapi-loader'; Vue.prototype.$AMap = null; if (process.env.NODE_ENV === "development") { window._AMapSecurityConfig = { securityJsCode: "YOUR_SECURITY_CODE", // 安全码可选填 }; } AMapLoader.load({ "key": "您的Key", "version": "2.0", "plugins": ["AMap.PlaceSearch"] // 加载所需插件 }).then((AMap) => { Vue.prototype.$AMap = AMap; }); ``` 此处需要注意替换 `"您的Key"` 和 `"YOUR_SECURITY_CODE"` 为实际值[^3]。 #### 地图组件封装 基于上述准备,可以构建一个简单的地图展示组件用于显示地理位置信息。下面是一个基础的地图容器实例代码片段: ```html <template> <view class="map-container"> <!-- 使用web-view标签加载H5网页 --> <web-view :src="'about:blank'" @load="initMap"></web-view> </view> </template> <script> export default { data() { return {}; }, methods: { initMap(e){ const mapContainerId = e.detail.ref; this.$nextTick(() => { let map = new this.$AMap.Map(mapContainerId, { zoom: 10, center:[116.397428, 39.90923], // 默认中心点坐标 }); // 添加标记物或其他交互逻辑... }) } } }; </script> <style scoped lang='scss'> .map-container{ width: 100%; height: calc(100vh - var(--window-top)); } </style> ``` 此部分展示了如何通过 web-view 组件嵌入 H5 页面的方式呈现地图视图,并利用 `$AMap` 对象操作地图对象属性与方法[^2]。 #### 实现自定义功能 对于更复杂的需求比如添加按钮控制地图行为或是增强标注样式,则可以通过监听事件、动态修改 DOM 结构等方式达成目标。例如向现有 Map 组件内增加控件按钮,可通过如下方式实现: ```javascript methods:{ addControlButton(){ let controlDiv = document.createElement('div'); controlDiv.style.cssText = '-webkit-user-select:none;background-color:#fff;border-radius:4px;' + 'box-shadow:0 2px 10px rgba(0,0,0,.2);cursor:pointer;font-size:.8em;padding:.5rem;'; controlDiv.innerHTML = '<button id="custom-control">点击放大</button>'; document.body.appendChild(controlDiv); let buttonElement = document.getElementById('custom-control'); buttonElement.addEventListener('click', () => { console.log('Custom Control Button Clicked!'); this.zoomIn(); }); function zoomIn(){ this.$AMap.getInstances()[0].setZoom(this.$AMap.getInstances()[0].getZoom()+1); } this.controlDiv = controlDiv; } } ``` 这段脚本说明了怎样构造 HTML 元素作为用户界面的一部分并与 JavaScript 方法关联起来响应用户的动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿BAIKAL巛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值