从零开始Vue项目中使用MapboxGL开发三维地图教程(一)MapboxGL介绍以及前期vue项目的搭建

news2024/12/26 9:31:19

MapboxGL介绍以及前期vue项目的搭建

      • 1、Mapbox-gl简介
      • 2、搭建vue项目
        • 2.1、创建vue项目
        • 2.2、注册mapbox官网
        • 2.3、mapbox-gl入门案例
      • 3、Mapbox-gl地图主要配置参数说明

1、Mapbox-gl简介

Mapbox-gl是一个开源、基于webgl技术的前端地图类库。

在这里插入图片描述

地图数据渲染和可视化这块我们经常用到的有商业使用的如:百度地图API和JS、高德地图的API和JS、ESRI的arcgis的全家桶,同时也有开源的一些地图引擎如:openlayers、mapboxgl、Leaflet等。

Mapbox的最大贡献:

它制定了MBTiles瓦片存储规范和Mapbox Vector Tile(Mapbox
矢量瓦片),可以说是制定了行业标准,对GIS行业有很大的影响。

在这里插入图片描述

官方文档(英文):https://docs.mapbox.com/mapbox-gl-js/api/
案例: https://docs.mapbox.com/mapbox-gl-js/example/

2、搭建vue项目

2.1、创建vue项目

可以使用vue cli脚手架搭建一个vue项目(此步骤省略)

2.2、注册mapbox官网

Mapbox官网注册一个账号,生成一个开发token,需要注意的是,注册过程中需要一张支持跨境国际业务的信用卡账号。信用卡随机码

另外在mapbox-gl在使用自搭建的后台地图服务时,可以通过修改源码,把需要token权限的方法注释掉,因而不使用此token就可以使用mapbox,具体方法如下:

从github上克隆一份mapbox-gl的源码,最好是按照版本进行克隆,这样代码比较稳定,yarn或者npm安装代码所需要的依赖包,确定安装成功,能按照package.json进行文件build,才进行修改。

需要修改的文件:

mapbox-gl-js-2.2.0\src\ui\map.js

文中代码开始位置:

/***** START WARNING - REMOVAL OR MODIFICATION OF THE

其中 _authenticate()引用注释掉,就能达到去掉token的效果。

上边的警告,需要仔细看一下,开源协议修改后,这段代码,官方不允许修改,在商业应用中,需要注意。

2.3、mapbox-gl入门案例

安装npm软件包

npm install --save mapbox-gl

按需引入mapbox-gl 样式文件

import 'mapbox-gl/dist/mapbox-gl.css';

js中使用mapboxgl


import mapboxgl from 'mapbox-gl'; // or "const mapboxgl = require('mapbox-gl');"

mapboxgl.accessToken = 'pk.xxxxx自己申请的token';
const map = new mapboxgl.Map({
    container: 'map', // container ID
    style: 'mapbox://styles/mapbox/streets-v12', // 地图样式URL
    center: [110, 40], // 地图起始位置
    zoom: 2, // 地图起始比列
});

效果:
在这里插入图片描述

3、Mapbox-gl地图主要配置参数说明

在mapbox-gl地图初始化时,可以对地图主要配置参数进行修改:(未涉及的请参见mapbox-gl官方文档)

  • options.antialias(布尔型):是否设置抗锯齿(平滑),默认值是false;
  • options.bearing(数值型):地图默认逆时针偏北旋转角度值(度数),默认值是0;
  • options.bounds(经纬度范围型):地图初始化的显示范围,如设置这个属性,设置的center和zoom属性不起作用,默认值是null;
  • options.center(经纬度坐标型):地图初始化的中心点坐标,默认值为[0,0];
  • options.crossSourceCollisions(布尔型):symbol(符号)的碰撞是否叠加多数据源分析,true时,所有symbol的数据源都计算,false只计算单独的数据源;
  • options.doubleClickZoom(布尔型):是否允许鼠标双击放大交互,true为允许,false为不允许;
  • options.dragPan(布尔型):是否允许鼠标拖动地图移动;
  • options.dragRotate(布尔型):是否允许鼠标按住旋转地图;
  • options.hash(布尔型|字符串型):是否在浏览器的地址栏上显示地图的缩放、中心坐标等信息,且能够通过设置参数显示自定义显示;
  • options.interactive(布尔型):是否允许鼠标、触摸或者键盘和地图进行交互操作;
  • options.maxBounds(经纬度范围型):设置地图的最大浏览观看范围;
  • options.maxPitch(数字型):设置地图观看的最大倾角(pitch);
  • options.maxZoom(数字型):设置地图的最大缩放等级;
  • options.minPitch(数字型):设置地图观看的最小倾角(pitch);
  • options.minZoom(数字型):设置地图的最小缩放等级;
  • options.pitch(数字型):设置地图的初始倾斜角;
  • options.pitchWithRotate(布尔型):设置是否允许地图倾角控件上的拖拽旋转;
  • options.preserveDrawingBuffer(布尔型):设置为true时,能够通过获得地图的canvas控件,将地图导出成图片,为了优化性能,默认值设置为false;
  • options.projection(坐标系代码):设置地图的坐标系,mapbox-gl初期不支持多坐标系,后期添加了Albers (‘albers’), Equal Earth (‘equalEarth’), Equirectangular/Plate Carrée/WGS84 (‘equirectangular’), Lambert (‘lambertConformalConic’), Mercator (‘mercator’), Natural Earth (‘naturalEarth’), and Winkel Tripel (‘winkelTripel’)坐标系支持;
  • options.scrollZoom(布尔型|对象):设置是否允许鼠标滚轮控制地图放大缩小;
  • options.style(对象|字符串):地图的样式配置文件,包含地图的数据源、图层等信息;
  • options.zoom(数字型):设置地图的初始化缩放级别。

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

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

相关文章

chatgpt赋能python:如何培训Python?-从入门到专业化

如何培训Python?- 从入门到专业化 Python是一种高级编程语言,已被广泛应用于各种领域以及各种应用程序的开发中。如果你也想成为一名Python开发人员,有以下几种培训方法帮助你一步步实现你的目标。 1.自学Python 学习Python的最简单方法是…

【前端 - CSS】第 13 课 - CSS 应用案例 - 体育新闻

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、示例代码 3、总结 1、缘起 最近学习完了 CSS 的 引入方式、选择器 和 字体修饰属性 的相关知识点,然后运…

redis(一),redis简介,Linux下安装及基本配置

一.redis简介: 1.什么是redis Redis 是完全开源的,遵守BSD协议,是一个高性能的 key-value 数据库。它属于NoSQL数据库。 2.NoSQL简介: NoSQL有两种说法,一般指的是非关系型数据库,另一种说法是说它是“…

xml parser - etree

import xml.etree.ElementTree as ET# https://docs.python.org/3/library/xml.etree.elementtree.html # https://zhuanlan.zhihu.com/p/502584681def main():tree ET.parse(./country_data.xml)# 获取根元素root tree.getroot()print("{} {}".format(type(root),…

chatgpt赋能python:Python3.7安装指南

Python 3.7 安装指南 Python是一种高级编程语言,被广泛应用于Web开发、数据科学、人工智能等领域。而最新版本的Python 3.7则提供了更加稳定、更加高效的开发环境。这篇文章将介绍如何在不同的操作系统中安装Python 3.7。 Windows系统安装 Python 3.7 在Windows系…

chatgpt赋能python:安装Platform模块——让Python更好用

安装Platform模块——让Python更好用 Python是一种跨平台的编程语言,可以在不同操作系统上使用。作为Python的一个标准模块,Platform模块可以帮助开发者轻松获取有关操作系统及其特征的信息。这篇文章将介绍如何安装Platform模块,并提供一些…

cxGrid自动保存当前单元格输入的数据

遇到的问题,利用cxGrid做数据录入界面,当用户在一个单元格中录入数据,没有回车,然后直接点工具条上的保存按钮,执行数据提交,结果当前输入的内容丢掉了,又回到输入前的值。 在群中求助&#xf…

axios实战进阶练习——基于 Vue3 + Node.js + ElementPlus 实现的联系人列表管理后台

文章目录 📋前言🎯demo 介绍🎯后端与接口的调试🧩关于运行后端项目🧩关于接口的调试 🎯功能分析🧩数据的展示与分页功能🧩添加功能🧩编辑功能🧩删除功能 &…

大话Stable-Diffusion-Webui-动手开发一个简单的stable-diffusion-webui(一)

文章目录 写在前面整体效果开发所需环境开发工具需要具备的知识Node安装更改npm包安装的目录设置npm镜像vscode安装创建vue项目代码编写项目先体验注意写在前面 stable-diffusion-webui(以下简称sd)项目通过FastAPI对外提供了一系列的api用于开发者二次开发或者集成到自己的…

真正理解微软Windows程序运行机制——窗口机制(第三部分)

我是荔园微风,作为一名在IT界整整25年的老兵,今天说说Windows程序的运行机制。经常被问到MFC到底是一个什么技术,为了解释这个我之前还写过帖子,但是很多人还是不理解。其实这没什么,我在学生时代也被这个问题困绕过。…

帆软报表二次开发 树组件节点上添加自己的按钮

我这里的需求是在树组件的子节点上加一个复制按钮。 先看效果 这是一颗多选树,用的是bi.tree_value_chooser_pane 这个组件,这个组件默认支持多选,它默认的效果为: 这个组件没有提供机制来自定义节点的渲染。 通过查找源码发现这个组件内部构建树是通过BI.$.fn.zTree来构…

C语言进阶---数据的存储

1、整形存储和大小端 本章重点: 1、数据类型详细介绍 2、整型在内存中的存储:原码、反码、补码 3、大小端字节序介绍及判断 4、浮点型在内存中的存储解析 1.1、数据类型介绍 char 1byte //字符数据类型 short 2byte //…

【MyBatis】3、一文介绍如何用 MyBatis 进行多表级联查询

目录 一、设置新插入记录的主键&#xff08;id&#xff09;到参数对象中二、PageHelper 分页插件三、多表关系四、一对一五、一对多六、多对多 一、设置新插入记录的主键&#xff08;id&#xff09;到参数对象中 <insert id"insert01" parameterType"Studen…

【二叉树---堆】

二叉树---堆 一、树的概念及结构1. 树的概念2.树的相关概念3.树的表示 二、二叉树1.二叉树的概念2.特殊的二叉树3.二叉树的性质 三、堆1.堆的概念及结构2.堆的实现&#xff08;1&#xff09;函数的声明&#xff08;2&#xff09;函数的实现&#xff08;3&#xff09;测试堆的基…

chatgpt赋能python:Python多次运行的优势及方法

Python多次运行的优势及方法 随着Python在计算机领域的广泛应用&#xff0c;越来越多的企业和个人开始使用Python进行编程。在Python编程中&#xff0c;多次运行同一份代码不仅是常见的需求&#xff0c;而且有着众多的优势。 Python多次运行的优势 调试 在编程过程中&#…

chatgpt赋能python:Python安装EGG——一个简单的指南

Python安装EGG——一个简单的指南 如果你使用Python有一段时间了&#xff0c;你可能会遇到需要安装扩展包&#xff08;Package&#xff09;的情况。在Python中&#xff0c;这些扩展包的文件格式通常是.egg&#xff08;Easy Installable GZip&#xff09;。在本文中&#xff0c…

chatgpt赋能python:Python如何安装CSV模块

Python如何安装CSV模块 CSV是一种广泛使用的文件格式&#xff0c;用于存储表格数据。Python已经内置了CSV模块&#xff0c;可以轻松地读取和写入CSV文件。在这篇文章中&#xff0c;我们将关注如何安装CSV模块并开始与CSV文件进行交互。 什么是CSV&#xff1f; CSV是Comma Se…

chatgpt赋能python:如何安装pyecharts

如何安装pyecharts Pyecharts是一个基于echarts的数据可视化工具&#xff0c;它是Python语言的一个库&#xff0c;可以通过Python编程语言进行数据可视化&#xff0c;并且能通过交互式的方式展示出来。 在本文中&#xff0c;我们将介绍如何安装pyecharts&#xff0c;如果您是…

chatgpt赋能python:Python宏定义:编写高效、灵活和可维护的代码

Python宏定义&#xff1a;编写高效、灵活和可维护的代码 Python是一种非常流行的编程语言&#xff0c;它的简洁性、易读性以及灵活性使得它成为了众多开发者的首选。Python是一个强大的语言&#xff0c;它可以大大提高您的编程效率。Python的宏定义是一种非常有用的技巧&#…