关于 MapboxGL 在 Vue 中的简单使用

news2025/1/17 15:45:04

前言问题

关于我为什么使用了 在线的 js引入方法,而不是使用 npm 直接下载依赖问题,之前有一篇文章讲过原因:关于 Vue-iClient-MapboxGL 的使用注意事项

网上提供的 vue-iclient-mapboxgl 比较多,但是我这里使用的是 iclient-supermap, 以及 mapboxgl 中的 api。

如果各位大佬有幸能帮助解答,可直接留言回复我,感谢。

功能示例

因为给公司写的内容涉密,所以给定一个基础样式实例

最佳路径分析:https://iclient.supermap.io/examples/classic/editor.html#analysis_findPath
在这里插入图片描述
上述示例仅完成选点规划路径,还要增加输入框输入功能,就结合了 地址的正向匹配和反向匹配功能

地址匹配:https://iclient.supermap.io/examples/mapboxgl/editor.html#addressMatchService

在这里插入图片描述

功能分析

  1. 根据厂商提供的地图 json 配置文件,显示基本地图
  2. 给地图添加点击事件,点击地图选点
  3. 将所选中的点放入数组中,并在地图中显示
  4. 根据厂商提供的接口,传参,发起请求,接收返回结果
  5. 根据接收到的结果反显在地图上所选点之间的路径
    以上完成选点规划路径
  6. 在地图上添加搜索框,可输入起点,终点,点击提交,完成路径规划
  7. 在输入框中输入地址,请求接口返回经纬度反显在地图上绘制点
  8. 完成地图选点的经纬度请求点的名称反显在输入框中(起点、终点同理)
  9. 点击提交完成的路径规划复用
  10. 重置地图

重点代码展示

引入

我使用的 在线方法引入:

<link href="https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/1.13.2/mapbox-gl.css" rel="stylesheet" />
<link href="https://iclient.supermap.io/dist/mapboxgl/iclient-mapboxgl.min.css" rel="stylesheet" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/1.13.2/mapbox-gl.js"></script>
<script type="text/javascript" src="https://iclient.supermap.io/dist/mapboxgl/iclient-mapboxgl.js"></script>
<script src="https://unpkg.com/@turf/turf@6/turf.min.js"></script>

当你引入之后在控制台打印内容就会发现这种引入方法和 npm 引入的内容不同。(请求解答)

初始化地图
// 地图配置
      mapOptions: {
        container: 'map', // container id
        style: ****, // 提供的地图配置,也可自己研究json直接写入即可
        center: [101, 38], // starting position
        zoom: 13, // starting zoom
        maxZoom: 16,
        minZoom: 10,
      },
init() {
      mapboxgl.accessToken = '*********';

      const map = new mapboxgl.Map(this.mapOptions);
      // 添加控件
      map.addControl(new mapboxgl.NavigationControl(), 'top-left');

      const geojson = {
        type: 'FeatureCollection',
        features: [],
      };

      // 加载地图 - 处理方法
      map.on('load', () => {
        //初始化标记图层类
        map.addSource('geojson', {
          type: 'geojson',
          data: geojson,
        });
      });

      this.map = map;
      this.selectPoints() // 点击选点方法
    },
地图选点
// 放入数组中
map.on('click', async(e) => {
    let point = [e.lngLat.lng, e.lngLat.lat]
    this.fillInputWithPoint(point)
  });
/**
     * 在地图上添加标记点
     * point: [lng, lat]
     * color: '#83f7a0'
     */
    addMarkerOnMap(point, color = '#83f7a0') {
      const marker = new mapboxgl.Marker({
        draggable: false,
        color: color,
      }).setLngLat(point).addTo(this.map);
      this.markersList.push(marker);
    },
提交方法

按照参数要求提交即可,这边设计**内容

总结

以上方法均为不完成代码示例,若有需要可直接留言!特总结思路

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

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

相关文章

win11系统msvcp120.dll丢失的解决方法,亲测有效的详细方法

在计算机使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“msvcp120.dll丢失”这个错误通常会导致某些应用程序无法正常运行。为了解决这个问题&#xff0c;我们需要采取一些修复措施。本文将介绍五个修复msvcp120.dll丢失的方法&#xff0c;帮助大…

Linux 虚拟内存参数配置

一、问题出发点 Jun 1 10:30:21 audit1 kernel: swapper: page allocation failure. order:1, mode:0x20 Jun 1 10:30:21 audit1 kernel: Pid: 0, comm: swapper Tainted: G --------------- T 2.6.32-431.20.3.el6.x86_64 #1 Jun 1 10:30:21 audit1 kernel: Call Trace: Jun …

Vue+element el-date-picker 时间日期选择器设置默认值,选择框不显示问题(已解决)

时间选择器默认值的问题 显示的时候如果用下面的方式赋值将不会显示出来&#xff1a; this.deviceFormData.time[0] that.$filterArray.formatDatehh(start);this.deviceFormData.time[1] that.$filterArray.formatDateEnd(end);实际上是有数据的&#xff0c;但是不会显示出…

18、SpringCloud -- 沙箱环境测试支付宝支付

目录 沙箱环境测试支付宝支付下载安装密钥:安装:生成密钥:沙箱环境配置支付宝SDK配置下载SDK&DEMO支付宝SDK导入支付宝SDK配置配置tomcat访问端口占用问题:解决方法:1、旧版沙箱配置-成功旧版沙箱自定义密钥2、新版沙箱配置-失败测试:1、点击付款2、模拟登录买家的账…

租赁小程序定制开发-让租赁业务更加高效

租赁小程序&#xff0c;让租赁变得更加方便。你可以在平台上找到各种商品&#xff0c;从生活用品到设备&#xff0c;只需简单的搜索和预订操作。而且&#xff0c;支付也可以在线完成&#xff0c;无需到店付款。当租赁期满&#xff0c;商品可以方便地归还&#xff0c;同时&#…

成都优优聚:外卖代运营服务:助力餐饮业腾飞!

随着互联网的快速发展&#xff0c;外卖行业逐渐成为了人们日常生活中不可或缺的一部分。而在这个领域中&#xff0c;外卖代运营服务正逐渐崭露头角&#xff0c;成为助力餐饮业腾飞的强大引擎。本文将为你详细解析外卖代运营服务的优势、现状及未来发展趋势&#xff0c;让你在外…

【云原生-K8s】Kubernetes安全组件CIS基准kube-beach安装及使用

基础介绍kube-beach介绍kube-beach 下载百度网盘下载wget下载 kube-beach安装kube-beach使用基础参数示例结果说明 基础介绍 为了保证集群以及容器应用的安全&#xff0c;Kubernetes 提供了多种安全机制&#xff0c;限制容器的行为&#xff0c;减少容器和集群的攻击面&#xf…

【Docker】从命名空间和路由角度探究Docker的bridge网络

桥接网络是Docker的默认网络模式。在桥接网络中&#xff0c;Docker会为每个容器创建一个虚拟网络接口&#xff0c;并为容器分配一个IP地址。容器可以通过桥接网络与主机和其他容器进行通信&#xff0c;也能暴露端口供外部访问。 容器之间的通信原理 首先我们创建两个容器&…

【数据结构初阶】十一、归并排序(比较排序)的讲解和实现(递归版本 + 非递归版本 -- C语言实现)

相关代码gitee自取&#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a; 【数据结构初阶】十、快速排序(比较排序)讲解和实现 &#xff08;三种递归快排版本 非递归快排版本 -- C语言实现&#xff09;-CSDN博客 常见排序算法的实现&#xff08;续上期&a…

自考02378《信息资源管理》第二章信息化规划与组织——思维导图

备战2024年04月自考科目02378《信息资源管理》第二章信息化规划与组织 思维导图如下&#xff1a; 以上便是本文的全部内容了&#xff0c;不知道对你有没有帮助呢。 我会认真写好每一篇文章&#xff0c;一直努力下去&#xff01;

网络基础-4

链路聚合技术 根据灵活性地增加网络设备之间的带宽供给增强网络设备之间连接的可靠性节约成本 链路聚合 是将两个或更多数据信道结合成一个单个的信道&#xff0c;该信道以一个单个的更高带宽的逻辑链路出现。链路聚合一般用来连接一个或多个带宽需求大的设备&#xff0c;例…

生化危机8:村庄- RESIDENT EVIL VILLAGE- 全新篇章,恐惧再升级

想要感受真正的生存恐怖吗&#xff1f;现在&#xff0c;最令人期待的恐怖游戏《生化危机8&#xff1a;村庄》即将登陆&#xff01;在这个充满神秘和危险的村庄中&#xff0c;你将体验到前所未有的恐惧。 《生化危机8&#xff1a;村庄》是CAPCOM公司开发的生化危机系列最新作&a…

java毕业设计基于springboot+vue高校本科学生综评系统

项目介绍 本系统是利用Spring Boot框架而设计的一款结合用户的实际情况而设计的平台&#xff0c;利用VUE技术来将可供学生和管理员来使用的所有界面来显示出来&#xff0c;利用Java语言技术来编程实现用户和管理员所执行的各类操作业务逻辑&#xff0c;以MySQL数据库来存取系统…

Taro React组件开发(12) —— RuiVerifyPoint 行为验证码之文字点选

1. 效果预览 2. 使用场景 账号登录,比如验证码发送,防止无限调用发送接口,所以在发送之前,需要行为验证! 3. 插件选择 AJ-Captcha行为验证码文档AJ-Captcha行为验证码代码仓库为什么要选用【AJ-Captcha行为验证码】呢?因为我们管理后台使用的是 pigx ,它在后端采用的是【…

Elasticsearch下载安装,IK分词器、Kibana下载安装使用,elasticsearch使用演示

首先给出自己使用版本的网盘链接&#xff1a;自己的版本7.17.14 链接&#xff1a;https://pan.baidu.com/s/1FSlI9jNf1KRP-OmZlCkEZw 提取码&#xff1a;1234 一般情况下 Elastic Search&#xff08;ES&#xff09; 并不单独使用&#xff0c;例如主流的技术组合 ELK&#xff08…

汽车EDI:福特Ford EDI项目案例

项目背景 福特&#xff08;Ford&#xff09;是世界著名的汽车品牌&#xff0c;为美国福特汽车公司&#xff08;Ford Motor Company&#xff09;旗下的众多品牌之一。此前的文章福特FORD EDI需求分析中&#xff0c;我们已经了解了福特Ford EDI 的大致需求&#xff0c;本文将会介…

Vue之CSS基础

CSS&#xff1a;层叠样式表 1、选择器 从模板template中选择某元素进行样式设置 需要注意的是作用域到底是当前模板还是整个html文档 1.1 基础(单一)选择器 标签、类、 id、通配符 标签、直接使用标签名&#xff0c;比如div,span… 优点&#xff1a;全选 模板中的名{。。。}…

学习Bootstrap 5的第十九天

目录 范围 自定义范围 步进 最小值和最大值 输入框组 输入组 输入组大小 带复选框和单选框的输入组 输入组按钮 带下拉按钮的输入组 输入框组标签 范围 自定义范围 可以通过将.form-range类添加到type"range"的输入元素来自定义范围菜单的样式。 要创建…

地球系统模式(CESM)详解

目前通用地球系统模式&#xff08;Community Earth System Model&#xff0c;CESM&#xff09;在研究地球的过去、现在和未来的气候状况中具有越来越普遍的应用。CESM由美国NCAR于2010年07月推出以来&#xff0c;一直受到气候学界的密切关注。近年升级的CESM2.0在大气、陆地、海…

【CVPR2023】Learning A Sparse Transformer Network for Effective Image Deraining

论文&#xff1a;https://readpaper.com/paper/4736105248993591297 代码&#xff1a;https://github.com/cschenxiang/DRSformer Transformer 模型通常使用标准的 QKV 三件套进行计算&#xff0c;但是部分来自 K 的 token 与来自 Q 的 token 并不相关&#xff0c;如果仍然对这…