vue3+vite 中使用百度地图【两种方式】

news2024/11/25 19:15:32

vue3+vite项目中使用百度地图

  • 方式一:直接使用百度地图的ak
  • 方式二:使用vue-baidu-map-3x插件

方式一:直接使用百度地图的ak

提前准备:

  • 创建一个vite项目
  • 申请好的百度地图ak值

百度地图使用:

  1. 在创建好的vite项目的入口文件index.html中引入百度地图ak
    在这里插入图片描述
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Vite + Vue</title>
  <script src="https://api.map.baidu.com/api?v=3.0&ak=IszZX5ST6vswOomUxhyFso0n7vpIqBXA"></script>
</head>

<body>
  <div id="app"></div>
  <script type="module" src="/src/main.js"></script>
</body>

</html>
  1. 去创建自己的地图
  • 在\src\echarts\MyMap.vue创建自己的地图
<template>
  <div class="map" ref="baiduRef"></div>
</template>
<script setup>
import { ref, onMounted } from "vue";

const baiduRef = ref();
const map = ref();
const point = ref();

function initMap(lng = 116.405725, lat = 39.935362) {
  map.value = new BMap.Map(baiduRef.value);
  point.value = new BMap.Point(lng, lat);

  map.value.centerAndZoom(point.value, 15);
  map.value.enableScrollWheelZoom(true); //滚轮缩放
  map.value.setMapStyleV2({
  //可以自己去百度地图中调整样式(方法在在一条)
    styleId: "9a7c760437*********************",
  });
}
onMounted(() => {
  initMap();
});
</script>
<style  scoped>
.map {
  width: 100%;
  height: 400px;
}
</style>

  1. 在百度地图开放平台中申请样式id(不是关键步骤,可忽略)
    在这里插入图片描述
  • 进入地图选项,下滑页面,可以看到查看详情
    在这里插入图片描述

  • 在详情页有新建选项,去创建自己的样式,并进行发布
    在这里插入图片描述

  • 点击发布后就能够获取到样式的id,还可以进行修改等操作

  • 在这里插入图片描述

  1. 在App组件中进行调用
<template>
  <BaiduMap  />
</template>
<script setup>
import BaiduMap from './components/baiduMap.vue'
</script>

方式二:使用vue-baidu-map-3x插件

提前准备

  • vue-baidu-map-3x官网
  • 百度地图ak

使用方法

  1. 在项目中安装vue-baidu-map-3x
npm i vue-baidu-map-3x
  1. 在/src/main.js中引入
import { createApp } from 'vue'
import BaiduMap from 'vue-baidu-map-3x'
import App from './App.vue'
const app = createApp(App);
app.use(BaiduMap, {
    ak: "IszZX5ST6*********************"  //使用自己的ak
})
app.mount('#app')

  1. 在 \src\echarts\MyMap.vue中使用(样式功能等可参照 vue-baidu-map-3x官网)
<template>
  <div>
    <baidu-map
      class="map"
      :center="{ lng: 116.404, lat: 39.915 }"
      :zoom="14"
      @mousemove="syncPolyline"
      @click="paintPolyline"
      @rightclick="newPolyline"
    >
      <bm-control>
        <button @click.stop="toggle">
          {{ polyline.editing ? "停止绘制" : "开始绘制" }}
        </button>
      </bm-control>
      <bm-polyline
        :path="path"
        v-for="path of polyline.paths"
        :key="path"
      ></bm-polyline>
    </baidu-map>
  </div>
</template>

<script setup>
import { ref, toRef } from "vue";

const polyline = ref({
  editing: false,
  paths: [],
});

const toggle = (name) => {
  polyline.value.editing = !polyline.value.editing;
};

const syncPolyline = (e) => {
  if (!polyline.value.editing) {
    return;
  }

  if (!polyline.value.paths.length) {
    return;
  }
  const path = polyline.value.paths[polyline.value.paths.length - 1];
  if (!path.length) {
    return;
  }
  if (path.length === 1) {
    polyline.value.paths[polyline.value.paths.length - 1].push(e.point);
  }
  polyline.value.paths[polyline.value.paths.length - 1][path.length - 1] =
    e.point;
};

const newPolyline = (e) => {
  if (!polyline.value.editing) {
    return;
  }
  if (!polyline.value.paths.length) {
    polyline.value.paths.push([]);
  }
  const path = polyline.value.paths[polyline.value.paths.length - 1];
  path.pop();
  if (path.length) {
    polyline.value.paths.push([]);
  }
};

const paintPolyline = (e) => {
  if (!polyline.value.editing) {
    return;
  }
  !polyline.value.paths.length && polyline.value.paths.push([]);
  polyline.value.paths[polyline.value.paths.length - 1].push(e.point);
};
</script>

<style>
.map {
  width: 400px;
  height: 100%;
}
</style>

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

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

相关文章

python 编译安装与脚本安装

编译安装的一般步骤&#xff1a; 安装依赖&#xff0c;安装依赖的第三方的工具&#xff0c;yum可以解决 编译安装的包中都有&#xff1a;configure 文件 进行预编译&#xff1a;检查你的环境是否合格 ./configure --prefixxxx 生成编译的文件&#xff1a;MakeFile python安装&…

Taobao.item_search-淘宝商品列表接口、关键词搜索淘宝商品列表接口

淘宝商品列表接口是淘宝开放平台提供的一个接口&#xff0c;可以返回符合指定条件的商品列表&#xff0c;开发者可以根据自己的需要在自己的应用中使用。 请求方式 淘宝商品列表接口使用 HTTP GET 请求方式。 请求 URL 请求URL如下&#xff1a;http://o0b.cn/opandy 请求参…

一文读懂循环队列的实现细节

循环队列最早出现在计算机系统设计中&#xff0c;它的出现主要是为了满足实际需求&#xff1a;在存储机制上&#xff0c;传统的队列存储方式难以满足一些实际应用中需要存储大量数据的场景。在有限的数组空间内&#xff0c;传统的队列存储方式可能会出现存储空间浪费过多、存储…

使用 StarCoder 创建一个编程助手

如果你是一个软件开发者&#xff0c;你可能已经使用过 ChatGPT 或 GitHub 的 Copilot 去解决一些写代码过程中遇到的问题&#xff0c;比如将代码从一种语言翻译到另一种语言&#xff0c;或者通过自然语言&#xff0c;诸如“写一个计算斐波那契数列第 N 个元素的 Python 程序”&…

[分享] 冒险岛079私服搭建

文章目录 前言目录介绍环境介绍过程第一步启动phpStudy.exe第二步 启动服务端.bat第三步 启动登录器.bat 总结常见问题 前言 好几年前找一个079版本冒险岛私服版本&#xff0c;本地玩了一下&#xff0c;感觉不错还研究了一下自带的GM工具。 现在朋友需要&#xff0c;记录一下踩…

交直流电流钳的用途和使用

电流钳是一种非侵入式检测设备&#xff0c;并不要求把采集端接入电路。一旦接入电路&#xff0c;就后会有阻抗的问题。霍尔线圈能够感应交流电流&#xff0c;但是无法感应直流信号。市售的电流钳&#xff0c;仍然是非接触测量&#xff0c;但交直流电流都能采&#xff0c;并且配…

Java的URI类

文章目录 1. 简介2. 构造一个URI3. URI的各个部分4. 解析相对URI5. 相等性和比较6. 字符串表示 1. 简介 URI是对URL的抽象&#xff0c;不仅包含统一资源定位符&#xff0c;还包括统一资源名&#xff08;URN&#xff09;。实际使用的URI大多是URL&#xff0c;但大多数规范和标准…

spring高频面试题

什么是IOC Spring框架提供的一种容器,用于控制对象的创建和对象之间的调用&#xff0c;通过IOC容器把对象的创建和调用过程交给Spring进行管理&#xff0c;省去了使用 new的方式创建对象。 所谓依赖注入(DI)&#xff0c;就是由IOC容器在运行期间&#xff0c;动态地将某种依赖关…

生态系统模型:SolVES、DNDC、CMIP6、GEE林业、APSIM、InVEST、无人机遥感、ArcGIS Pro模型等

基于R语言APSIM模型高级应用及批量模拟实践技术 CMIP6 数据处理方法与典型案例分析实践技术 Python 与 Noah-MP 陆面过程模型融合技术及在站点、区域模拟实践应用 双碳目标下基于“遥感”融合技术在碳储量、碳收支、碳循环等多领域监测与模拟实践应用 基于Citespace和vosvi…

扩展定时器功能说明

计数和定时 ⚫ 16bit upcounter ⚫ 上升沿或下降沿计数 ⚫ 计数初值和终值可配置 ⚫ 计数值大于等于比较值时触发中断 ⚫ 计数溢出后自动重载 ⚫ 计数周期中可以通过改写重载寄存器修改下一周期长度 支持16bit计数或级联的32bit计数。当CNTSEL0&#xff0c;计数器为16bit&#…

快手新财报:曙光就在冲刺路上?

自短视频爆火以来&#xff0c;短视频行业的头部玩家——抖音和快手就迎来了飞速发展&#xff0c;甚至一度成为了国民“杀时间利器”。然而&#xff0c;随着互联网红利逐渐见顶&#xff0c;短视频行业竞争加剧&#xff0c;哪怕作为头部玩家&#xff0c;快手的日子也并不好过。 …

Tatuk GIS Developer Kernel for .NET 11.77 Crack

Tatuk GIS Developer Kernel for .NET 是一个变体&#xff0c;它是受控代码和 .NET GIS SDK&#xff0c;用于为用户 Windows 操作系统创建 GIS 专业软件的过程。它被认为是一个完全用于 Win Forms 的 .NET CIL&#xff0c;WPF 的框架是为 C# 以及 VB.NET、VC、oxygen 以及最终与…

Learn From Microsoft Build Ⅰ:OpenAI

点击蓝字 关注我们 编辑&#xff1a;Alan Wang 排版&#xff1a;Rani Sun 微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0…

android性能测试-内存详解

Android性能测试-内存详解 名称说明Native HeapNative代码分配的内存&#xff0c;虚拟机和Android框架分配内存。关于什么是Native代码&#xff0c;即非Java代码分配的内存。Dalvik HeapJava对象分配的占据内存Dalvik Other类数据结构和索引占据内存Stack栈内存Other dev内部dr…

盐城北大青鸟东台基地IT精英挑战赛设计类作品展示

北大青鸟IT精英挑战赛作品展示——《黄小果》 这是我们22级新生王欣怡的作品&#xff0c;她是一位很优秀的 学生&#xff0c;经过一年的学习能够熟练的制作表情包

怎样让GPT教我用Python进行数据可视化

文章目录 怎样让GPT教我用Python进行数据可视化matplotlibpyecharts总结 怎样让GPT教我用Python进行数据可视化 &#x1f680;&#x1f680;首先&#xff0c;我们先看一下这段代码&#xff0c;这是我之前写来读取excel文件中xx大学在各个类别中的获奖情况&#xff0c;并保存在…

机器学习之机器如何学习

通过Julia的语法、函数、编译器使机器学习技术变得更加简单。 1、机器学习如何工作 通过机器学习&#xff0c;研究人员可以构造算法&#xff0c;使计算机自身能够在大量的数据中找到数学模式&#xff0c;而这是人类不可能做到的。想想看: 如果我问你&#xff0c;你怎么知道一张…

Padstack editor 绘制SMD Pin,Thru Pin和Via

一&#xff0c;椭圆形状的SMD PIN 的创建&#xff08;例如&#xff1a;0.55/0.23 补偿后 0.95/0.28&#xff09; 1&#xff0c;在select padstack usage 中选择 SMD Pin &#xff1b;select pad geometry中选择 Oblong; 2&#xff0c;先将左下角 decimal places中的值设置为2&…

Java内部类(成员内部类、局部内部类、静态内部类、匿名内部类)

目录 ①. 什么是内部类 ②. 内部类的共性 ③. 为什么需要内部类 ④. 成员内部类 ⑤. 局部内部类 ⑥. 静态内部类&#xff08;嵌套类&#xff09; ⑦. 匿名内部类 ①. 什么是内部类 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员&#xff0c;并…

C++常用的支持中文的GUI库Qt 6之三: 项目的发布

C常用的支持中文的GUI库Qt 6之三&#xff1a; 项目的发布 本文接着上一篇“C常用的支持中文的GUI库Qt 6之二&#xff1a;项目的结构、资源文件的使用” https://blog.csdn.net/cnds123/article/details/130741807介绍&#xff0c;并使用其中的例子。 程序代码能正确编译运行&…