Vue中如何进行地图展示与交互(如百度地图、高德地图)?

news2024/11/25 19:43:17

Vue中如何进行地图展示与交互

随着移动互联网的普及,地图应用已经成为人们生活中不可或缺的一部分。在Vue.js中,我们可以使用第三方地图库(如百度地图、高德地图)来实现地图的展示和交互。本文将介绍如何在Vue.js中使用百度地图和高德地图,并提供代码示例。

在这里插入图片描述

使用百度地图

步骤一:获取百度地图开发者密钥

在使用百度地图之前,我们需要先获取一个百度地图开发者密钥。可以在百度地图开放平台上注册一个开发者账号,然后创建一个应用,即可获得开发者密钥。

步骤二:引入百度地图库

在Vue.js项目中引入百度地图库的方式有多种,这里我们介绍两种常用的方式。

通过CDN引入

可以在index.html文件中通过CDN引入百度地图库,例如:

<!-- 引入百度地图API -->
<script src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>

通过npm安装和引入

也可以通过npm安装和引入百度地图库,例如:

npm install baidu-map --save

在Vue.js组件中使用:

import BMap from 'baidu-map'

export default {
  mounted() {
    // 初始化地图
    const map = new BMap.Map('map')
    // 设置地图中心点
    const point = new BMap.Point(116.404, 39.915)
    map.centerAndZoom(point, 15)
  }
}

步骤三:在Vue.js组件中使用百度地图

在Vue.js组件中使用百度地图,需要在mounted钩子函数中进行初始化。在初始化地图之后,可以设置地图的中心点、缩放级别、控件等。

下面是一个使用百度地图的示例代码:

<template>
  <div id="map" style="height: 500px;"></div>
</template>

<script>
import BMap from 'baidu-map'

export default {
  mounted() {
    // 初始化地图
    const map = new BMap.Map('map')
    // 设置地图中心点
    const point = new BMap.Point(116.404, 39.915)
    map.centerAndZoom(point, 15)
    // 添加控件
    map.addControl(new BMap.NavigationControl())
    map.addControl(new BMap.ScaleControl())
    map.addControl(new BMap.OverviewMapControl())
  }
}
</script>

在上面的示例代码中,我们首先在模板中定义了一个id为"map"的div元素,然后在mounted钩子函数中初始化地图,并设置地图的中心点、缩放级别和控件。

步骤四:在Vue.js组件中使用百度地图的事件

在Vue.js组件中,我们可以使用百度地图提供的事件来响应用户的操作。例如,可以在地图上添加标记,并在用户单击标记时触发事件。

下面是一个使用百度地图事件的示例代码:

<template>
  <div id="map" style="height: 500px;"></div>
</template>

<script>
import BMap from 'baidu-map'

export default {
  mounted() {
    // 初始化地图
    const map = new BMap.Map('map')
    // 设置地图中心点
    const point = new BMap.Point(116.404, 39.915)
    map.centerAndZoom(point, 15)
    // 添加控件
    map.addControl(new BMap.NavigationControl())
    map.addControl(new BMap.ScaleControl())
    map.addControl(new BMap.OverviewMapControl())
    // 添加标记
    const marker = new BMap.Marker(point)
    map.addOverlay(marker)
    // 注册标记单击事件
    marker.addEventListener('click', function(){
      alert('你单击了标记')
    })
  }
}
</script>

在上面的示例代码中,我们添加了一个标记,并注册了标记的单击事件。当用户单击标记时,会弹出一个提示框。

使用高德地图

步骤一:获取高德地图开发者密钥

在使用高德地图之前,我们需要先获取一个高德地图开发者密钥。可以在高德开放平台上注册一个开发者账号,然后创建一个应用,即可获得开发者密钥。

步骤二:引入高德地图库

在Vue.js项目中引入高德地图库的方式有多种,这里我们介绍两种常用的方式。

通过CDN引入

可以在index.html文件中通过CDN引入高德地图库,例如:

<!-- 引入高德地图API -->
<script src="https://webapi.amap.com/maps?v=1.4.15&key=你的密钥"></script>

通过npm安装和引入

也可以通过npm安装和引入高德地图库,例如:

npm install vue-amap --save

在Vue.js组件中使用:

import VueAMap from 'vue-amap'

Vue.use(VueAMap)
VueAMap.initAMapApiLoader({
  key: '你的密钥',
  plugin: ['AMap.Geolocation']
})

步骤三:在Vue.js组件中使用高德地图

在Vue.js组件中使用高德地图,需要在mounted钩子函数中进行初始化。在初始化地图之后,可以设置地图的中心点、缩放级别、控件等。

下面是一个使用高德地图的示例代码:

<template>
  <div id="map" style="height: 500px;"></div>
</template>

<script>
export default {
  mounted() {
    // 初始化地图
    const map = new AMap.Map('map', {
      zoom: 15,
      center: [116.404, 39.915]
    })
    // 添加控件
    map.addControl(new AMap.ToolBar())
    map.addControl(new AMap.Scale())
    map.addControl(new AMap.OverView())
  }
}
</script>

在上面的示例代码中,我们首先在模板中定义了一个id为"map"的div元素,然后在mounted钩子函数中初始化地图,并设置地图的中心点、缩放级别和控件。

步骤四:在Vue.js组件中使用高德地图的事件

在Vue.js组件中,我们可以使用高德地图提供的事件来响应用户的操作。例如,可以在地图上添加标记,并在用户单击标记时触发事件。

下面是一个使用高德地图事件的示例代码:

<template>
  <div id="map" style="height: 500px;"></div>
</template>

<script>
export default {
  mounted() {
    // 初始化地图
    const map = new AMap.Map('map', {
      zoom: 15,
      center: [116.404, 39.915]
    })
    // 添加控件
    map.addControl(new AMap.ToolBar())
    map.addControl(new AMap.Scale())
    map.addControl(new AMap.OverView())
    // 添加标记
    const marker = new AMap.Marker({
      position: [116.404, 39.915],
      map: map
    })
    // 注册标记单击事件
    marker.on('click', function() {
      alert('你单击了标记')
    })
  }
}
</script>

在上面的示例代码中,我们添加了一个标记,并注册了标记的单击事件。当用户单击标记时,会弹出一个提示框。

结论

在Vue.js中使用百度地图和高德地图,我们可以通过获取开发者密钥、引入地图库、初始化地图和注册事件等步骤来实现地图的展示和交互。虽然,需要注意的是,由于百度地图和高德地图是第三方地图库,使用时需要遵守其相应的使用协议和规定。

此外,还需要注意的是,在使用百度地图和高德地图时,可能会遇到跨域问题。为了解决这个问题,我们可以使用代理或者调整服务器配置等方式。

最后,上述代码示例仅供参考,实际使用时还需要根据具体需求进行修改和完善。

参考资料

  1. 百度地图开放平台
  2. 高德开放平台
  3. 百度地图API文档
  4. 高德地图API文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA整合GO并传module工程

IDEA整合Go 安装包环境配置idea配置并创建test mode 安装包 1.去官网下载对应还的安装包 官网下载地址 我选择下载的window 版本&#xff1a; 直接按照对应的目录&#xff0c;然后点击下一步 环境配置 1.配置go环境变量 在高级环境变量PAHT中添加安装包的**/bin 目录&…

主流自动化测试框架,这5种真的帮助巨大。

今天我们要向大家介绍的是常见5种主流自动化测试框架&#xff0c;包括优缺点等内容&#xff0c;供大家参考学习。 1.ATF 自动化测试框架AutoTestFramework是B/S架构框架&#xff0c;可实现Selenium等多种自动化测试全流程、团队化管理的高级框架平台&#xff0c;通过集成自动化…

想必大家都为测试用例头疼过,那么如何才能设计出一个“好的”测试用例

目录 前言&#xff1a; “好的”测试用例具备的特征 1&#xff0e;等价类划分方法 2&#xff0e;边界值分析方法 “好的”测试用例的设计方法 测试用例设计的其他经验 作为测试人员&#xff0c;需要注意以下几点&#xff1a; 前言&#xff1a; 设计一个“好的”测试用例&…

c++学习——模板

模板 **模板的概念****函数模板的语法****函数模板注意事项****函数模板案例****普通模板和函数模板的区别****普通函数和函数模板的调用规则****模板的局限性****类模板****类模板和函数模板的区别****类模板中成员函数创建时机****类模板对象做函数参数****类模板与继承****类…

ubuntu22.04安装mysql8和xtrabackup8

使用官网下载的ubuntu22.04文件制作启动u盘 u盘启动后安装ubuntu22.04,安装完毕,先修改root密码,然后升级软件包。 sudo apt-get update sudo apt-get upgrade 使用下面命令安装mysql8 sudo apt-get install mysql-server 这个跟20.04中安装方法一致。 安装成功,修改…

2023年杭州/广州/东莞/深圳软考(中/高级)认证,618报名特惠

软考是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职称资格考试。 系统集成…

chatgpt赋能python:Python快速复制快捷键:如何提高你的效率

Python快速复制快捷键&#xff1a;如何提高你的效率 作为一名有10年python编程经验的工程师&#xff0c;我经常需要复制和粘贴代码片段来提高我的开发效率。但是&#xff0c;每次鼠标选中并右键点击复制的过程是十分繁琐的。为了提高我的效率&#xff0c;我开始寻找快速复制的…

React-Redux 对Todolist修改

在单独使用redux的时候 需要手动订阅store里面 感觉特别麻烦 不错的是react有一个组件可以帮我们解决这个问题, 那就是react-redux。 react-redux提供了Provider 和 connent给我们使用。 先说一下几个重点知道的知识 Provider 就是用来提供store里面的状态 自动getState()co…

复习html的第一章

HTML&#xff08;英语&#xff1a;Hyper Text Markup Language&#xff0c;简称&#xff1a;HTML &#xff09;也叫作超文本标记语言&#xff0c;是一种使用结构化 Web 网页及其内容的标记语言&#xff0c;您可以使用 HTML 来建立自己的 WEB 站点。 通过学习本教程&#xff0c…

Vue_00001

contents 介绍初始Vue入门程序 介绍 官网地址&#xff1a;https://cn.vuejs.org/ 在官网地址可以下载vue.js文件&#xff0c;可以查看Vue文档。 初始Vue <!DOCTYPE html><html><head><meta charset"utf-8"/><title>初始Vue</tit…

【客户案例】云联壹云帮助华北电力大学搭建 AI 训练平台

客户介绍 华北电力大学是教育部直属全国重点大学&#xff0c;是国家“211 工程”和“985 工程优势学科创新平台”重点建设大学。2017 年&#xff0c;学校进入国家“双一流”建设高校行列&#xff0c;重点建设能源电力科学与工程学科群&#xff0c;全面开启了建设世界一流学科和…

WWDC 23 之后的 SwiftUI 有哪些新功能

文章目录 前言数据流动画ScrollView搜索新手势新增的小功能总结 前言 WWDC 23 已经到来&#xff0c;SwiftUI 框架中有很多改变和新增的功能。在本文中将主要介绍 SwiftUI 中数据流、动画、ScrollView、搜索、新手势等功能的新变化。 数据流 Swift 5.9 引入了宏功能&#xff…

【数字基座·智慧物联】AIRIOT新品发布会在京举办

2023年6月6日&#xff0c;由航天科技控股集团股份有限公司主办的“数字基座智慧物联”AIRIOT新品发布会在北京成功举办&#xff0c;重磅发布了AIRIOT 4.0物联网平台的五大核心能力引擎&#xff0c;并邀请行业嘉宾分享了智能制造、智慧环保、油气油田、车联网等垂直行业的应用案…

信创办公–基于WPS的EXCEL最佳实践系列 (创建表格)

信创办公–基于WPS的EXCEL最佳实践系列 &#xff08;创建表格&#xff09; 目录 应用背景操作步骤1、新建空白工作簿并命名为“奖牌榜”2、使用模板新建工作簿3、新增一张工作表&#xff0c;并将工作簿的标签更改为红色4、复制与隐藏工作表5、添加工作簿属性值6、更改工作簿主题…

STM32单片机(三)第四节:GPIO输入练习(按键控制LED、光敏传感器控制蜂鸣器)

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

基于SSM的校园二手C2C购物商城

基于SSM的校园二手交易平台 零、源码获取&#xff1a; 链接点击直达&#xff1a;下载链接 一、设计概要 本次设计的是一个校园二手交易平台&#xff08;C2C&#xff09;&#xff0c;C2C指个人与个人之间的电子商务&#xff0c;买家可以查看所有卖家发布的商品&#xff0c;并…

开源 API 网关-访问策略(二)

在上篇文章API网关&#xff1a;开源 API 网关-访问策略(一)中&#xff0c;我们简单演示了如何在IP维度中对请求路径设置黑白名单&#xff0c;以此来限制客户端请求的权限和范围。 此外&#xff0c;Apinto网关为客户端提供了一种统一的、基于访问密钥的认证机制&#xff0c;让客…

java的逻辑运算符与短路逻辑运算符

一、逻辑运算符 示例&#xff1a; 二、短路逻辑运算符 &&与&的区别是&#xff0c;再短路逻辑运算符&&所连接的表达式中&#xff0c;如果左边为假&#xff0c;则右边不进行运算&#xff0c;直接得出结果。在逻辑运算符&所连接的表达式中&#xff0c;…

Revit中如何将构件载入自己创建的楼中

当我们做一个楼群时&#xff0c;一般会有一个模板楼给我们参考&#xff0c;而楼群为了统一风格&#xff0c;装饰都是一样的&#xff0c;那么我们为了节省时间&#xff0c;该如何将模板楼上的构件载入到我们自己创建的楼中呢?下面请看步骤。 1、 打开模板楼“1号楼” 2、 双击样…

2023年前端面试题总结

某多多 1.Promise实现原理 2.vue组件间通信 3.性能优化 4.vuex数据流动过程 5.谈谈css预处理器机制 6.算法: Promise串行 某眼电影 1.vue组件间通信 2.react和vue更新机制的区别 3.Vue3 proxy的优劣 4.性能优化 5.symbol应用 6.深拷贝 问题 Promise实现原理 解决异步编程回…