Mapbox GL JS学习之路(一):初识 Mapbox GL JS

news2025/1/21 7:10:57

文章目录

  • 1 什么是Mapbox GL JS
  • 2 Mapbox GL JS 可以用来做什么
    • 2.1 在交互式地图上使用自己的数据自定义设计的地图样式
    • 2.2 商店定位器(Store locator)
    • 2.3 故事讲述(Storytelling)
    • 2.4 用于基于位置的数据可视化的仪表板(Dashboard for location-based data visualization)
    • 2.5 数据可视化编辑器(Data visualization editor)
    • 2.6 标记和地图编辑器(Markup and map editor)
    • 2.7 查询地图上的要素(Querying features on a map)
    • 2.8 实时资产跟踪(Live asset tracking)
    • 2.9 路线规划和导航地图(Maps for route planning & navigation)
    • 2.10 交互式新闻地图(Interactive news maps)
  • 3 Mapbox GL JS 版本
  • 4 Mapbox GL JS v2新特性
  • 5 Mapbx GL JS 支持哪些地图投影
  • 6 如何学习Maxbox GL JS
  • 7 ArcGIS API for JavaScript 和 Mapbox GL JS 两者有什么区别?各自的优缺点是什么?
  • 8 加载地图

1 什么是Mapbox GL JS

Mapbox GL JS是一个用于Web上交互式、可自定义矢量地图的JavaScript库。它使用Mapbox样式规范和硬件加速图形(WebGL)从Mapbox Vector Tiles渲染地图数据。
Mapbox GL JS是跨平台生态系统的一部分,其中还包括用于Android和iOS应用程序的本地SDK。可以使用Mapbox Studio编写和编辑地图样式。

2 Mapbox GL JS 可以用来做什么

2.1 在交互式地图上使用自己的数据自定义设计的地图样式

可以自定义地图样式并将自己的数据添加到交互式地图中。用户可以通过Mapbox Studio创建自己的地图样式,包括地图颜色、标签、图标等,然后将自己的数据集集成到地图上。这使得用户能够以自己的方式呈现地图数据,并在地图上与其进行交互。

2.2 商店定位器(Store locator)

在地图上显示数千个点,以较低的缩放级别对其进行聚类。
通常,Store Locator应用可以让用户通过搜索商店名称、地图区域或地址等方式,查找周围的商店或服务机构,并在地图上显示它们的位置和基本信息,例如电话、营业时间等。在Mapbox平台上,Store Locator可以通过使用Mapbox API和开发者工具箱来实现。通过这种方式,商家可以将他们的门店信息上传到Mapbox中,并轻松地与Store Locator应用程序或其他地图相关应用程序集成,以便向潜在客户展示其门店位置。

2.3 故事讲述(Storytelling)

使用交互式相机和动态风格和数据更新来增强数据可视化

  • Mapbox中的Storytelling是一种地图展示方式,它通过使用不同的地图层、数据点、标签、图例等元素,帮助用户通过一系列交互式地图来讲述一个故事或者传达一个信息。通过Storytelling,用户可以创建一个有逻辑顺序和视觉引导的地图故事,让观众更好地理解地理数据和相关背景信息。
  • Mapbox的Storytelling功能包括制作交互式地图、添加多个地图层并控制它们的可见性、在地图上添加标记和描述、创建自动漫游的高级动画、并以多种方式呈现地图数据,例如: 热力图、时序数据、聚合数据等。所有这些元素都可以帮助用户在地图上展示数据,并使地图信息更加清晰和易于理解。
  • Mapbox的Storytelling在多个领域应用广泛,例如,新闻报道、旅游攻略、城市规划、环境监测等,为用户提供了一种清晰而有吸引力的方式来呈现地理数据、交互地探索地图、并传达信息。

2.4 用于基于位置的数据可视化的仪表板(Dashboard for location-based data visualization)

可以将各种类型的数据以地图形式进行可视化,包括地理坐标、行政区域、地形和卫星图像等,同时还支持不同层次的数据聚合和筛选。

2.5 数据可视化编辑器(Data visualization editor)

一个交互式可视化工具,可以帮助用户快速创建自定义的地图数据可视化。它提供了一个直观、可视化的界面,使得用户可以轻松地探索和呈现地图数据,并以各种方式可视化它们(如散点图、热力图、流量图等)。

2.6 标记和地图编辑器(Markup and map editor)

Markup:

  • Markup是Mapbox Studio的一项功能,它允许用户在地图上创建和编辑标记和注释。用户可以将标记添加到地图上,并选择标记图标,文本和颜色。这对于在地图上添加用户指南或标识特定区域非常有用。

地图编辑器

  • Mapbox地图编辑器是一个易于使用的网站,它允许用户创建自定义地图。用户可以添加点、线和多边形等要素,也可以编辑地图上现有的要素。它包括一个简单的拖放界面,允许用户从地图的左侧面板中选择要素,并将它们拖动到地图中心,然后将其设置为所需的属性。此外,用户还可以上传自己的地图瓦片或使用Mapbox Studio的自定义地图。

2.7 查询地图上的要素(Querying features on a map)

通过点击或者拖动地图区域来获取与之相关的所有地图要素。这些要素可以是地图上的点、线、面或其他数据。它可以帮助用户了解特定位置上的要素信息,比如建筑物、街道、公园等,并进一步了解相关的地理信息。
利用查询地图上的要素功能,用户可以自定义自己的地图标记,并在地图上添加所需的要素。此外,此功能可以将地图要素的数据绑定到应用程序中,这在开发位置相关的应用程序时特别有用。

2.8 实时资产跟踪(Live asset tracking)

用于跟踪和监控移动资产的位置和状态。它的主要功能是实时地显示资产在地图上的位置和路径,并提供实时数据更新,包括速度、方向和状态等。这个服务可以应用于广泛的场景,例如车队管理、物流配送、人员追踪、应急救援等。

2.9 路线规划和导航地图(Maps for route planning & navigation)

该功能模块集成了实时交通、公共交通等数据,可以帮助用户规划最优路线,并提供导航指引。
具体来说,该功能模块提供以下几个方面的功能:

  • 路线规划:用户可以输入起点和终点,该功能模块会计算最短路径并显示在地图上。同时,用户还可以选择不同的交通方式和偏好,如步行、骑行、开车、公共交通等。
  • 导航指引:一旦用户选择了路线,该功能模块会提供语音和视觉提示,引导用户沿着最优路线前进。用户可以在地图上实时查看自己的位置和行进路线,同时也会提供相关交通信息和路况警告等信息。
  • 实时交通:Mapbox会收集并更新实时交通信息,帮助用户规划最优路线。用户可以在地图上查看交通流量、拥堵情况等信息。同时,该功能模块也会根据实时路况调整导航路线。
  • 公共交通:该功能模块还集成了公共交通数据,用户可以查看公共交通路线和时刻表等信息,并规划最优的出行方式。该功能模块也会实时更新公共交通信息,帮助用户规避潜在的延误和调整出行计划。

2.10 交互式新闻地图(Interactive news maps)

Mapbox中的Interactive news maps 是一种交互式地图功能,它可以用来展示新闻故事、数据报道、可视化等内容。Interactive news maps可以显示不同地区的地图,同时也可以在地图上添加标记和信息窗口,用户可以通过点击标记和信息窗口来获取更多的信息。这种功能可以让用户更加深入地了解事件发生的地点和情境,也可以让新闻故事更加生动、直观、易于理解。此外,Interactive news maps还支持对地图样式、标签、颜色、动画等方面进行自定义,以便更好地匹配新闻内容和用户需求。

3 Mapbox GL JS 版本

Mapbox GL JS 是一个开源的基于WebGL的JavaScript库,用于构建交互式的地图应用程序。目前有三个大版本:v0.x,v1.x和v2.x。其中v1.x和v2.x是基于WebGL 2.0的版本,而v0.x则基于WebGL 1.0。这三个版本之间有一些重要的差异和更新。

Mapbox GL JS v0 提供了多种灵活和高度定制的地图样式和数据,可以帮助开发人员构建各种不同类型的地图应用,如空间分析、数据可视化、地理搜索等。
Mapbox GL JS v0有许多功能和特性,包括

  • 支持矢量地图、多种地图样式,分层渲染,地图数据查询与过滤,交互式控件和事件,以及大量的API和插件等。
  • 支持从多种数据源获取地图数据,如Mapbox自带的Mapbox Streets数据源,也支持从开放数据源、本地矢量文件等数据源获取地图数据。

Mapbox GL JS V1 用于创建交互式和高性能的Web地图应用程序。它提供了一套丰富的API和工具,可以轻松实现全球范围内的可视化和地理信息展示。

主要特点包括:

  • 矢量地图:Mapbox GL JS V1使用矢量地图数据,可以快速加载大规模数据,并支持与其他地图数据源的集成。
  • 高性能:它利用WebGL技术,可以在浏览器中实现高性能的地图渲染,并可以处理大数据集。
  • 交互式:使用Mapbox GL JS V1,用户可以通过缩放、平移、旋转等手势实现对地图的交互操作,并能够与其他UI元素进行集成。
  • 自定义样式:Mapbox GL JS V1允许开发人员针对不同的用例和需求,自定义地图样式和符号,包括地图瓦片、标注、线条、面、颜色和字体等。
  • 地理信息和空间分析:借助Mapbox GL JS V1提供的丰富的地理信息API和工具,可以轻松实现地理信息和空间分析,比如地理编码、路线导航、地理围栏、空间查询等。

Mapbox GL JS v2 可以被用于在网页和移动应用中显示地图,同时也支持添加标记、热点、矢量图层和地图样式的自定义。
Mapbox GL JS v2 的核心依赖于 WebGL2.0 技术,可以在现代的浏览器和移动设备上快速渲染高质量的交互式地图。同时,它还可以通过扩展API实现对地图的多种定制化操作,例如导航,搜索, 分析和数据可视化等功能。

在 Mapbox GL JS v2 中还包含了一些新的功能,例如:

  • 3D 视图的增强,支持使用 Mapbox 的高度数据和太阳角度信息创建逼真的 3D 地图。

  • 支持在矢量和栅格图层上应用交互式的过渡和过渡动画效果。

  • 增加了可视化数据的功能,包括线条、面、圆和点数据等。

总的来说,Mapbox GL JS目前已被广泛应用于各种领域,在移动应用、网络应用、物联网、大数据分析等领域都有广泛应用。Mapbox GL JS v0的开放源代码和丰富的文档和示例,也为开发人员提供了极大的便利和灵活性,帮助他们更容易地构建自己的地图应用程序。Mapbox GL JS v2 在功能上得到了显著的升级,为开发人员提供了更好的可定制性、更丰富的功能选择和更流畅的性能表现,使得开发高质量的地图应用变得更加容易。

4 Mapbox GL JS v2新特性

Mapbox GL JS v2(GL-JS v2)是下一代基于矢量瓦片的浏览器地图SDK。它包括:

  • 性能改进 ---- 加载贴图库和渲染初始视口的时间更快。

  • 三维渲染 ---- 渲染具有地形高程和天空层的矢量地图。‍

  • 自由形式 ---- 相机自由形式相机API允许您在三维中明确定位相机。

有哪些提升?

  • Mapbox GL JS v2在某些样式中将地图加载时间提高了50%以上,并引入了地图的渐进渲染以提高感知的地图加载时间。渐进式渲染使页面感觉更快,并允许用户在地图完全加载之前与地图进行交互。

  • 地图加载在浏览器的主Javascript线程上占用的时间也更少,为web应用程序的其余部分留下了更多的资源来继续加载。

  • 地图内容的渐进加载允许在初始加载以及缩放、平移和动画过程中更早地渲染土地和水等层。这也改善了地图交互(缩放和平移)和动画的体验。

  • 改进的大小取决于地图大小、网络条件和硬件。在我们的基准测试中,可能在v1中加载了1900ms的映射,在v2中加载了1350ms。衡量地图内容何时开始显示的速度指数也快了35%。

可以对3D渲染做些什么?

Mapbox GL JS v2实现身临其境的3D地图绘制体验。可以将卫星图像或矢量层覆盖在地形数据上,以三维可视化地图。
比如:

  • 使用自由形式的相机API,沿着无人机飞行路线在世界各地飞行。
  • 在三维地形的顶部显示蜂窝塔模型的信号覆盖范围。
  • 通过实时天气条件和一天中的时间显示不断变化的天空和地平线。

3D渲染有哪些新功能或改进?

  • 地图俯仰(倾斜)从60°增加到85°

  • 将高程添加到所有图层的样式中的地形全局特性

  • 样式中的天空层类型,用于对地平线建模并影响填充拉伸层上的照明

什么是Freeform相机?

Freeform相机是一种可以自由旋转和缩放的相机,用户可以通过手势或鼠标控制相机的视角和位置。它常用于虚拟现实、增强现实和视频游戏中,以提供更自然和沉浸式的体验。
您可以使用FreeCameraOptions在应用程序级别实现自己的相机操作和动画逻辑。曝光的摄影机参数集允许将摄影机移动与不同的平台动画系统集成在一起。

用Freeform相机能做什么?

自由形式的摄影机可以移动摄影机并设置其动画,而不需要在场景中心设置精确的纬度和经度。这对于忽略焦点、具有多个焦点或动态更新焦点的运动非常有用。它对于视图方向的平滑相对运动也很有用,比如在多个焦点之间进行扫掠旋转、飞行或放松。
相机可以沿着空中飞行路径飞行,以恒定的相机速度跟踪地面物体,或者构建围绕固定兴趣点旋转的信息亭动画。此API还可以轻松地在多个SDK或其他应用程序状态之间同步相机。

5 Mapbx GL JS 支持哪些地图投影

首先,我们在想知道Mapbx GL JS 支持哪些地图投影之前,需要了解什么是地图投影。

地图投影是将地球表面的三维地球体投影到二维平面上的方法。由于地球是一个球体,而地图通常是平面,因此需要将地球表面的曲面映射到平面上。投影的过程会影响地图的形状、大小、比例、方向和距离等属性。由于不同的投影方法有不同的优缺点,因此在制作地图时需要根据具体需要选择合适的投影方式。常见的地图投影包括等距圆柱投影、等角圆柱投影、等面积投影和方位投影等。

Mapbx GL JS 支持以下地图投影方式:

  • 阿伯斯投影(Albers),又名“正轴等积割圆锥投影”,“双标准纬线等积圆锥投影”。圆锥投影的一种,为阿伯斯(Albers)拟定。
    在这里插入图片描述

  • 朗伯等角圆锥投影 (Lambert Conformal Conic),是一种等角(正形)圆锥投影.由德国数学家朗伯(Lambert , J.H.)提出。

  • Equal Earth 投影,是一种等面积投影,它的设计旨在提供更加准确和公正的地球表面的表达。它是由美国国家地理空间情报局的Bojan Savric和Tom Patterson领导的团队开发的,该投影于2018年推出。这种投影可以在没有任何地图变形的情况下将球形地球表面投影到二维表面上。它使用了椭球体方程和校正形变因素,以适合大地图比例的用途。

  • Natural Earth 投影,是一种基于等面积的投影方式,它使用了Cylindrical Equal-Area投影的变体。Natural Earth投影旨在呈现地球表面的整体形状,尤其是在较小的地图上。它被广泛用于制作世界地图和国家地图。与其他等面积投影不同的是,Natural Earth投影还能够保留较高的几何精度。它是一种相对简单的投影方式,具有易于绘制和理解的优点。

  • Winkel Tripel 投影,是一种常用于世界地图的等面积投影方法,被广泛使用于各种大型的世界地图中。它是众多投影方法中的一种,其特点是能够比较准确的反映出地球表面的真实形状和大小关系,并且保持了同一纬度上的距离相等,但是不同纬度之间的距离会有一些变形。Winkel Tripel投影是由德国地理学家Oswald Winkel于1921年发明的,它折中了Mercartor投影和平面等面积正六边形网格投影的特点,因此得名Winkel Tripel。

  • Equirectangular 投影,是一种经典的地球表面投影方法,也称作平面经纬度投影或直角经纬度投影。该投影方法将地球表面上的经度和纬度映射到一个平面矩形网格上,经度和纬度分别对应该网格的横纵坐标。这种投影方法通常用于展示全球的地图或气象数据等。

  • 墨卡托投影(Mercator),墨卡托投影是等角圆柱投影的一种,它将球体表面的经纬度网格,投影到平面上,以便在地图上显示。它假设地球是一个理想的完整球体,并将其展平到一个矩形上。在这种投影下,经线与纬线平行地形成相互垂直的网格。经线的间距相等,代表东西方向,每个纬线到赤道的距离相等,代表南北方向。墨卡托投影通常使用于地图制图,它的主要优点是保持角度不变,也就是说在地图上的任意两点之间的方位角不会发生改变。它还可以减小地球表面上的距离扭曲,但在极地区域,墨卡托投影也会引起显著的形变。墨卡托投影在航空、海洋、地图制图等领域广泛应用,它保持方向和等面积性质的特点使得它成为一种实用性非常强的地图投影方式。
    在这里插入图片描述

6 如何学习Maxbox GL JS

学习 Mapbox GL JS 的方式有很多,比如:

  • 官方网站:Mapbox GL JS 官方网站上提供了详细的文档和教程,包括新手指南、API 文档、示例代码等等。建议先阅读新手指南,了解 Mapbox GL JS 的基本概念和使用方法。

  • 示例代码:Mapbox GL JS 提供了丰富的示例代码,可以通过官方网站或官方 GitHub 仓库获取。这些示例代码可以帮助你快速地学习和理解 Mapbox GL JS 的使用方法和功能。

  • 教程和博客:各种教程和博客也是学习 Mapbox GL JS 不错的选择。这些资源可以从互联网上搜索到,包括 YouTube 视频、Medium 论坛、StackOverflow 等等。

  • 实践项目:最好的学习方法是通过实践项目来掌握技能。你可以尝试使用 Mapbox GL JS 开发一个小型的地图应用程序,如实时交通、地图分析、航行路线等等。

总之,学习 Mapbox GL JS 需要耐心和实践,相信只要认真学习,并不断实践,就能掌握这个强大的工具。

7 ArcGIS API for JavaScript 和 Mapbox GL JS 两者有什么区别?各自的优缺点是什么?

ArcGIS API for JavaScript和Mapbox GL JS都是用于构建交互式地图应用程序的JavaScript库。以下是它们之间的区别和各自的优缺点:

  • 数据支持和内容:ArcGIS API for JavaScript有更丰富的地图数据支持和内容,因为它可以直接使用Esri的ArcGIS平台进行数据检索和交换。Mapbox GL JS则主要专注于统一的地图绘制和样式,并且可以使用其他数据源(如OpenStreetMap)。

  • 图层控制:ArcGIS API for JavaScript具有更丰富的图层控制功能,可以很容易地添加和控制各种图层。Mapbox GL JS相对较少的内置图层控制功能,但是可以使用第三方插件增强其功能。

  • 样式和外观:Mapbox GL JS在设计方面更加注重外观和样式,并且提供了更多的设计选项和控制选项。ArcGIS API for JavaScript则更加注重地图功能和实用性。

  • 跨平台支持:Mapbox GL JS支持跨平台,可以很容易地在Web、移动和桌面应用程序中部署。ArcGIS API for JavaScript则主要用于Web应用程序,但是也可以使用其他Esri产品进行桌面和移动部署。

  • 交互性:ArcGIS API for JavaScript提供了更多的交互性和用户体验控制功能,包括动画、弹出窗口、标注和可视化效果等。Mapbox GL JS也提供了一些交互性,但是主要关注地图绘制和外观方面。

总的来说,两者都有自己的优点和缺点,取决于应用程序的需求和开发人员的技能水平。如果需要更丰富的数据支持和图层控制功能,则ArcGIS API for JavaScript是更好的选择。如果需要更注重样式和外观方面,则Mapbox GL JS可能更适合。

8 加载地图

代码实现:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>Display a web map</title>
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
    <!-- 引入在线mapbox-gl css样式 -->
    <link href="https://api.mapbox.com/mapbox-gl-js/v2.13.0/mapbox-gl.css" rel="stylesheet">
    <!-- 引入在线mapbox-gl js库 -->
    <script src="https://api.mapbox.com/mapbox-gl-js/v2.13.0/mapbox-gl.js"></script>

    <!-- 自定义CSS样式 -->
    <style>
        body {
            margin: 0;
            padding: 0;
        }

        #map-container {
            position: absolute;
            top: 0;
            bottom: 0;
            width: 100%;
        }
    </style>
</head>

<body>
    <div id="map-container"></div>

    <script>
        // token
        mapboxgl.accessToken = 'pk.eyJ1IjoieGlhb3NoaWhkIiwiYSI6ImNrNngzYnRhdzBqNm0zZnJ4eWZjdndrYzkifQ.qQjf8zANr9PsMpwq2NsRWQ';

        const map = new mapboxgl.Map({
            container: 'map-container', // 存放地图的容器id
            // Choose from Mapbox's core styles, or make your own style with Mapbox Studio
            style: 'mapbox://styles/mapbox/streets-v12',
            center: [100.9, 34.2], // 地图中心位置经纬度[longitude,latitude]
            zoom: 2.5,      // 地图缩放等级
            projection: 'globe' // 投影方式,默认 'globe'
        });

    </script>

</body>

</html>

结果展示:

在这里插入图片描述


参考链接:

Mapbox GL JS 官网 https://www.mapbox.com/mapbox-gljs
Mapbox GL JS 帮助文档 https://docs.mapbox.com/mapbox-gl-js/guides/

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

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

相关文章

C++ deque/queue/stack的底层原理

deque容器的存储结构 和 vector 容器采用连续的线性空间不同&#xff0c;deque 容器存储数据的空间是由一段一段等长的连续空间构成&#xff0c;各段空间之间并不一定是连续的&#xff0c;可以位于在内存的不同区域。 deque采用一块所谓的map数组&#xff08;注意&#xff0c…

Lua 批量修改文件夹下文件名

local s io.popen("dir C:\\Users\\lizhiyuan\\Desktop\\国家知识产权局ftp法律状态数据\\data /b/s") local filelist s:read("*a")local start_pos 0while 1 do_,end_pos,line string.find(filelist, "([^\n\r].xml)", start_pos)if not e…

VScode 右键菜单加入使用用VSCode打开文件和文件夹【Windows】

VScode 右键菜单加入使用用VSCode打开文件和文件夹【Windows】 介绍修改注册表添加右键打开文件属性修改注册表添加右键打开文件夹属性修改注册表添加右键空白区域属性 介绍 鼠标右击文件或者文件夹&#xff0c;可直接用VSCode打开&#xff0c;非常方便。但如果我们在安装VSCo…

动态规划---子序列问题

一)最长递增子序列: 300. 最长递增子序列 - 力扣&#xff08;LeetCode&#xff09; 算法原理: 1.定义一个状态表示:经验题目要求 dp[i]表示&#xff0c;以i位置为结尾&#xff0c;最长递增子序列的长度 中心思路就是找到以i位置为结尾的所有递增子序列&#xff0c;然后找到递增…

使用Adfind和powerview查询域内特殊的ACL

Adfind 使用adfind查询具备有Dcsync权限的账户 AdFind.exe -s subtree -b "DC=hacktest,DC=com" -sdna nTSecurityDescriptor -sddl+++ -sddlfilter ;;;"Replicating Directory Changes All";; -recmute AdFind.exe -s subtree -b "DC=hacktest,DC…

《Pytorch深度学习和图神经网络(卷 2)》学习笔记——第一章

学习基于如下书籍&#xff0c;仅供自己学习&#xff0c;用来记录回顾&#xff0c;非教程。 <PyTorch深度学习和图神经网络&#xff08;卷2&#xff09;——开发应用>一书配套代码&#xff1a; https://github.com/aianaconda/pytorch-GNN-2nd- 百度网盘链接&#xff1a;…

【有功功率、无功功率】可再生能源配电馈线的鲁棒经济调度研究[IEEE13节点](Matlab代码实现)

&#x1f4a5;1 概述 "有功功率和无功功率" 是与电力系统中能量传输和功率控制相关的两个重要概念。 有功功率&#xff08;Active Power&#xff09;是指电力系统中传输和消耗能量的功率&#xff0c;也被称为实功功率。它负责提供电力系统中的实际电能需求&#xf…

Python使用select模块/asyncio库实现轮询机制

一、轮询机制概念 在操作系统中&#xff0c;用户态轮询机制是一种等待系统中某个资源就绪的方式&#xff0c;它通常用于非阻塞式I/O操作。这种机制允许用户进程在等待I/O操作完成时继续执行其他任务&#xff0c;而不是一直阻塞等待。用户进程可以使用系统调用将I/O操作请求提交…

数学分析:换元详解

这一端文章没有写详细的证明。意思是说n维空间下的k个向量围成的多面体的体积&#xff0c;都可以用公式(3)进行计算。详细证明过程参考&#xff1a;行列式的一种推广 - 知乎 这里简述下过程&#xff1a; 首先要把这n个m维向量进行格拉姆斯密特正交化&#xff0c;得到正交后的…

解决appium-doctor报gst-launch-1.0.exe and/or gst-inspect-1.0.exe cannot be found

一、下载gst-launch-1.0.exe and gst-inspect-1.0.exe 下载地址&#xff1a;Download GStreamer runtime installer 和 development installer 两个应用程序都要下载并安装 二、运行安装 下载好后点击安装会弹出如下界面&#xff0c;点击“更多信息”展开&#xff0c;点击“仍然…

C语言实现计算器简单混合运算

计算器的实现看似简单&#xff0c;其实并不简单。 要求完成功能&#xff1a; 1.实现 - * / 简单运算&#xff1b; 2.可以实现这几个运算符的综合&#xff08;混合&#xff09;运算&#xff1b; 注意&#xff1a;该计算器混合运算中不包含太复杂的运算符&#xff0c;如()&am…

星戈瑞 CY3-Dextran的合成方法和表征

CY3-Dextran是一种荧光染料&#xff0c;可用于细胞标记和显微镜观察。它具有很强的荧光信号和稳定性&#xff0c;可以用于研究细胞生物学和分子生物学。 CY3-Dextran的合成方法涉及将CY3染料与葡聚糖进行共价结合。以下是一种常用的合成方法&#xff1a; 【合成方法】&#xf…

3.1例子---登录窗口1

3.1例子—登录窗口1 这一次效果图是这样的&#xff1a; 界面创建 # welcome image canvas tk.Canvas(window, height200, width500)#创建画布 image_file tk.PhotoImage(filewelcome.gif)#加载图片文件 image canvas.create_image(0,0, anchornw, imageimage_file)#将图…

MySQL数据库第九课--------join连接四件套------不错的哦哦哦

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com ____________________________________________________________________ 目录 SQL查询语句 限定输出 limit 连接查询 join 内连接 左连接 右连接 外连接 ____________________________________…

xxx.indexOf is not a function报错

注意&#xff1a;xxx 如果是数字、布尔、对象&#xff0c;然而indexOf用于查找字符串或数组中的元素&#xff0c;所以会报错。

Qt5.15.2安装

解释一下 Qt 的版本号 比如 5.15.2 是完整的 Qt 版本号&#xff0c;第一个数字 5 是大版本号&#xff08;major&#xff09;&#xff0c;第二个数字 15 是小版本号&#xff08;minor&#xff09;&#xff0c;第三个数字 2 是补丁号&#xff08;patch&#xff09;。 只要前面两个…

Python异步编程框架Tornado使用方法

Tornado简介 Python异步编程框架Tornado是一个轻量级的Web框架和异步网络库&#xff0c;它能够处理大量并发连接和请求&#xff0c;非常适合高并发的网络应用和实时应用。 Tornado基本概念&#xff1a; 协程&#xff1a;Tornado采用协程并发模型&#xff0c;可以让单线程同时…

Vue第三篇:最简单的vue购物车示例

本文参考&#xff1a;Vue Cli&#xff08;脚手架&#xff09;实现购物车小案例 - - php中文网博客 效果图&#xff1a; 编写流程&#xff1a; 1、首先通过vue/cli创建工程 vue create totalprice 2、改写App.vue代码如下&#xff1a; <template><div><div v…

017 - STM32学习笔记 - SPI读写FLASH(二)

016 - STM32学习笔记 - SPI访问Flash&#xff08;二&#xff09; 上节内容学习了通过SPI读取FLASH的JEDEC_ID&#xff0c;在flash资料的指令表中&#xff0c;还看到有很多指令可以使用&#xff0c;这节继续学习使用其他指令&#xff0c;程序模板采用上节的模板。 为了方便起…

uni-app中a标签下载文件跳转后左上角默认返回键无法继续返回

1.首先使用的是onBackPress //跟onShow同级别 onBackPress(option){ uni.switchTab({ url:/pages/....... return true }) }发现其在uni默认头部中使用是可以的 但是h5使用了"navigationStyle":"custom"后手机默认的返回并不可以&#xff0c; 2.经过查询…