关于 MapboxGL 在 Vue 中的简单使用

前言问题

关于我为什么使用了 在线的 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 idstyle: ****, // 提供的地图配置,也可自己研究json直接写入即可center: [101, 38], // starting positionzoom: 13, // starting zoommaxZoom: 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.hqwc.cn/news/156498.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图扑 HT for Web 手机端运维管理系统

随着信息技术的快速发展&#xff0c;网络技术的应用涉及到人们生活的方方面面。其中&#xff0c;手机运维管理系统可提供数字化、智能化的方式&#xff0c;帮助企业和组织管理监控企业的 IT 环境&#xff0c;提高运维效率、降低维护成本、增强安全性、提升服务质量&#xff0c;…

2021-arxiv-GPT Understands, Too

2021-arxiv-GPT Understands, Too Paper&#xff1a; https://arxiv.org/abs/2103.10385 Code&#xff1a; https://github.com/THUDM/P-tuning Prompt 简单理解 举例来讲&#xff0c;今天如果有这样两句评论&#xff1a; 1. 什么苹果啊&#xff0c;都没有苹果味&#xff0c…

zabbix6.4监控centos

1、关闭防火墙 setenforce 0 #关闭SELinux sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #设置永久关闭SELinux systemctl stop firewalld.service #关闭防火墙 systemctl disable firewalld.service …

python脚本-读取shadow关键信息并爆破密码

python脚本-读取shadow关键信息并爆破密码 代码 import crypt from colorama import Fore,Styledef crack():# 密码爆破函数定义with open(/root/top1000.txt) as f:# 此处更改密码字典for passwd in f:passwd2crypt.crypt(passwd.strip(),salt)if passwd2 passwd_hash:prin…

黄金矿工小游戏

欢迎来到程序小院 黄金矿工 玩法&#xff1a;点击开始游戏&#xff0c;黄金和钩子&#xff0c;钩子会左右摆动&#xff0c;对准黄金位置点击鼠标左键钓起黄金加对应时间&#xff0c;钓起黑色四块减去响应时间&#xff0c;快去挖矿吧^^。开始游戏https://www.ormcc.com/play/ga…

k8s-调度约束

目录 工作机制 调度过程 指定调度节点 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作&#xff0c;保持数据同步的&#xff0c;每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件&#xff0c;向 APIServer 发送命令&#xff0c;在 Node 节点上面…

PyGame:Python 游戏编程入门

一、说明 当我在上个世纪末开始学习计算机编程时&#xff0c;我的愿望是编写计算机游戏。我试图弄清楚如何在我学到的每种语言和每个平台上编写游戏&#xff0c;包括 Python。这就是我发现pygame并学习如何使用它来编写游戏和其他图形程序的方式。当时&#xff0c;我真的很想要…

2023世界传感器大会即将开启,汉威科技向全球发出邀请

由河南省政府、中国科学技术协会主办&#xff0c;郑州市人民政府、中国仪器仪表学会、河南省工业和信息化厅、河南省科学技术协会承办的“2023世界传感器大会”将于11月5日~7日在郑州国际会展中心举办。 传感器是链接数字世界与物理世界的桥梁&#xff0c;是万物互联、智慧化时…

[EFI]asus strix b760-i 13900F电脑 Hackintosh 黑苹果efi引导文件

硬件型号驱动情况主板 asus strix b760-i 处理器 I9 13900F 已驱动内存crucial ddr5-5200 64gb(32gb*2)(overclock 5600)已驱动硬盘 WD black sn850 500g*2 已驱动显卡rx570已驱动声卡Realtek ALCS1220A已驱动网卡Intel I225-V 2.5 Gigabit Ethernet已驱动无线网卡蓝牙Fevi T91…

密码学基础

密码学总览 信息安全面临的危险与应对这些威胁的密码技术&#xff1a; 关于上图中的威胁&#xff0c;这里在简单的说明&#xff1a; 窃听&#xff1a;指的是需要保密的消息被第三方获取。篡改&#xff1a;指的是消息的内容被第三方修改&#xff0c;达到欺骗的效果。伪装&…

Mysql数据库 6.SQL语言 分组、分页查询

分组查询—group by 分组——就是将数据表中的记录按照指定的类进行分组 关键字——group by 语法 语法中加[]的是可有可无的&#xff0c;group by一般和having一起使用 select 分组字段/聚合函数 from 表名 [where 条件] group by 分组列名 [having 条件] [order by …

关于CSS的几种字体悬浮的设置方法

关于CSS的几种字体悬浮的设置方法 1. 鼠标放上动态的2. 静态的&#xff08;位置看上悬浮&#xff09;2.1 参考QQ邮箱2.2 参考知乎 1. 鼠标放上动态的 效果如下&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><met…