Openlayers入门教程 --- 万字长篇

news2025/1/4 19:51:17

也许你还不熟悉Openlayers,也许你是一个Openlayers小白,零基础没关系,这篇文章提供最基础的 Openlayers 教程,简单易学,贯穿整个Openlayers 知识体系。读完本文,您将会对 Openlayers 有一个全新的认识。

文章目录

  • 一、什么是Openlayers?
  • 二、Openlayers 对比 leaflet 和 mapbox
  • 三、搭建Openlayers 的开发环境
  • 四、Openlayers 基础 -- map
    • 4.1 map核心API
      • 4.1.1map 属性参数
      • 4.1.3 map 的常用方法
    • 4.2 map 常见事件示例
      • 4.2.1 click 示例
      • 4.2.2 singleclick 示例
      • 4.2.3 dblclick 示例
      • 4.2.4 pointermove 示例
      • 4.2.5 右键点击示例
      • 4.2.6 movestart、moveend 示例
      • 4.2.7 loadstart、loadend 示例
      • 4.2.8 modifystart和modifyend 示例
      • 4.2.9 postrender 示例
  • 五、Openlayers 基础 - view
    • 5.1 view 核心API
      • 5.1.1 view 属性参数
      • 5.1.2 view 常见方法
    • 5.2 view 常见使用示例
      • 5.2.1 zoom 示例
      • 5.2.2 resolution 示例
      • 5.2.3 extent 示例
      • 5.2.4 center 示例
      • 5.2.5 projection 示例
      • 5.2.6 rotation 示例
  • 六、Openlayers 基础 - layer
    • 6.1 加载地图
      • 6.1.1 加载谷歌地图
      • 6.1.2 加载OSM地图
      • 6.1.3 加载Bing地图
      • 6.1.4 加载Mapbox地图
      • 6.1.5 加载baidu地图
      • 6.1.6 加载Arcgis地图
      • 6.1.7 加载高德地图
      • 6.1.8 加载天地图
  • 七、Openlayers 基础 - source
  • 八、Openlayers 基础 - style
  • 九、Control
    • 9.1 添加删除control
    • 9.2 control示例
      • 9.2.1 比例尺 - ScaleLine
      • 9.2.2 鹰眼/缩小图 - OverviewMap
      • 9.2.3 全屏 - FullScreen
      • 9.2.4 版权信息 - Attribution
      • 9.2.5 旋转地图 - Rotate
      • 9.2.6 放大缩小 - Zoom
      • 9.2.7 缩放滑块控件 - ZoomSlider
      • 9.2.8 鼠标位置 - MousePosition
      • 9.2.9 ZoomToExtent
      • 9.2.10 清除所有控件
  • 十、Interaction
    • 10.1示例
      • 10.1.1 draw 示例
      • 10.1.2 modify 示例
      • 10.1.3 select 示例
      • 10.1.4 Drag-and-Drop 示例
      • 10.1.5 DragPan示例
      • 10.1.6 DragZoom 示例
  • 十一、Overlay
    • 11.1 核心API
      • 11.1.1 常用属性
      • 11.1.2 overlay 常用方法
    • 11.2 overlay 示例
      • 11.2.1 弹窗中显示经纬度信息
      • 11.2.2 弹窗中播放mp4视频
      • 11.2.3 弹窗中显示地点详情
  • 十二、Geom 几何图形
    • 12.1 示例
      • 12.1.1 Point 示例
      • 12.1.2 LineString 示例
      • 12.1.3 LinearRing示例
      • 12.1.4 Polygon 示例
      • 12.1.5 MultiPoint 示例
      • 12.1.6 MultiLineString 示例
      • 12.1.7 MultiPolygon示例
      • 12.1.8 GeometryCollection 示例
      • 12.1.9 Circle 示例
  • 十三、Openlayers 学习资料
    • 13.1 Openlayers 官方网站
    • 13.2 Openlayers示例大全

在这里插入图片描述

一、什么是Openlayers?

OpenLayers 是一个用于创建交互式地图的 JavaScript 库。它提供了一系列工具和功能,使得开发者可以在网页上嵌入动态、可交互的地图。

使用 OpenLayers,你可以加载各种地图数据源,如瓦片地图、矢量数据等,并在地图上添加各种元素,如标记、线条、多边形等。它还支持地图缩放、平移、旋转等基本操作,以及图层管理、事件处理等高级功能。

OpenLayers 的优点在于它的灵活性和可扩展性。它可以与其他 JavaScript 库和框架集成,并且有丰富的文档和社区支持。无论是创建简单的地图应用,还是构建复杂的地理信息系统(GIS),OpenLayers 都是一个强大的工具。


二、Openlayers 对比 leaflet 和 mapbox

参考: 地图库的三足鼎立:Mapbox、Leaflet 和 OpenLayers 该选谁?

  • 如果您的项目需要高度定制化的地图和强大的地理数据处理功能,Mapbox可能是更好的选择。
  • 如果您的项目是轻量级的,尤其是面向移动端用户的,Leaflet 可能更适合您的需求。
  • 如果您的项目需要兼容老旧的浏览器或者是企业级别的、对稳定性有非常高要求,OpenLayers可能是最佳选择。

三、搭建Openlayers 的开发环境

图文参考:Openlayers从0 到1 搭建开发环境


四、Openlayers 基础 – map

4.1 map核心API

在这里插入图片描述

4.1.1map 属性参数

  • target 地图的容器,元素本身或id元素的 。必须指定,不指定无法加载地图。
  • view 视图。需要在构造时或通过方法(setView)指定,否则不会加载图层。
  • layers 图层。没定义图层,也会加载,显示空白图层。图层是按顺序加载的,想要在最上层需要放在最后面。
  • controls 添加到地图上的控件。默认加载 ol/control 下 defaults,默认控件组。
  • overlays 覆盖物。默认情况下,不添加任何覆盖物。
  • pixelRatio 设备上物理像素与设备无关像素(下降)之间的比率。
  • interactions 添加到地图的交互事件。默认加载 ol/interaction 下 defaults,默认交互组。
  • keyboardEventTarget 监听键盘事件的元素。这决定了KeyboardPan和 KeyboardZoom互动的触发时间。例如,如果将此选项设置为 document键盘,则交互将始终触发。如果未指定此选项,则库在其上侦听键盘事件的元素是地图目标(即,用户为地图提供的div)。如果不是 document,则需要重点关注目标元素以发出关键事件,这要求目标元素具有tabindex属性。
  • maxTilesLoading 同时加载的最大瓦片数。默认16。
  • moveTolerance 光标必须移动的最小距离(以像素为单位)才能被检测为地图移动事件,而不是单击。增大此值可以使单击地图更容易。
  • layerGroup 地图中图层的图层组。
  • size DOM 中地图的大小(以像素为单位)。

4.1.3 map 的常用方法

  • on(type, listener) 侦听某种类型的事件。
  • addControl(control) 添加控件。
  • addInteraction(interaction) 添加交互。
  • addLayer(layer) 添加图层。
  • removeLayer(layer) 删除图层。
  • addOverlay(overlay) 添加覆盖物。
  • dispatchEvent(event) 调度事件并调用所有侦听此类型事件的侦听器。
  • getOverlays() 获取所有覆盖物。
  • removeOverlay(overlay) 删除指定覆盖物

4.2 map 常见事件示例

map event 指的是地图上的事件,例如鼠标点击、移动、缩放等。 简单的应用方式:

map.events.on(‘click’, function (evt) {
// 在点击事件发生时执行的代码
});

4.2.1 click 示例

示例:鼠标click显示企业名片

4.2.2 singleclick 示例

示例:singleclick点击选择feature,并设置特定的颜色

4.2.3 dblclick 示例

示例: dblclick事件示例-显示品牌代言人信息

4.2.4 pointermove 示例

右键点击定位,获取某一点下多层features信息

4.2.5 右键点击示例

示例:右键点击定位,获取某一点下多层features信息

4.2.6 movestart、moveend 示例

示例:moveend事件获取地图左上和右下的坐标信息

4.2.7 loadstart、loadend 示例

示例:loadstart和loadend 旋转加载显示

4.2.8 modifystart和modifyend 示例

示例:modifystart和modifyend显示提示信息

4.2.9 postrender 示例

示例:postrender地图图像的滤镜处理


五、Openlayers 基础 - view

view表示地图的简单 2D 视图。可以用来控制地图在容器中移动,还可以更改地图的中心,分辨率,旋转等。主要会用到两种projection:球面墨卡托 (EPSG:3857)和wgs84(EPSG:4326)

5.1 view 核心API

5.1.1 view 属性参数

  • center 视图的初始中心。
  • zoom 仅在resolution未定义时使用。缩放级别用于计算视图的初始分辨率。
  • projection 投射方式,默认为EPSG:3857
  • extent 限制视图的范围。值表示范围的数字数组:[minx, miny, maxx, maxy]。
  • constrainRotation 旋转约束。 false意味着没有约束。true意味着没有约束,但在零附近捕捉到零。数字将旋转限制为该数量的值,就是设置90只能旋转90度。
  • enableRotation 是否启用旋转。
  • constrainOnlyCenter 如果为true,则范围约束将仅适用于视图中心而不是整个范围。
  • smoothExtentConstraint 如果为true,范围约束将被平滑地应用,即允许视图稍微超出给定的extent。
  • maxResolution 用于确定分辨率约束的最大分辨率。
  • minResolution 用于确定分辨率约束的最小分辨率。
  • maxZoom 用于确定分辨率约束的最大缩放级别。
  • minZoom 用于确定分辨率约束的最小缩放级别。
  • constrainResolution 如果为 true,则视图将始终在交互后以最接近的缩放级别进行动画处理;false 表示允许中间缩放级别。
  • resolutions决定缩放级别的分辨率。
  • rotation 以弧度为单位的视图初始旋转(顺时针旋转,0 表示北)。

5.1.2 view 常见方法

  • setCenter 设置当前视图的中心。任何范围限制都将适用。
  • setZoom 缩放到特定的缩放级别。任何分辨率限制都将适用。
  • getCenter 获取视图中心,返回一个地图中心的坐标。
  • getZoom 获取当前的缩放级别。如果视图不限制分辨率,或者正在进行交互或动画,则此方法可能返回非整数缩放级别。
  • getMaxZoom 获取视图的最大缩放级别。
  • getMinZoom 获取视图的最小缩放级别。
  • getProjection 获取地图使用的”投影坐标系统”,如EPSG:4326;
  • getMaxResolution 获取视图的最大分辨率。
  • getMinResolution 获取视图的最低分辨率
  • getRotation 获取视图旋转。
  • getZoomForResolution 获取分辨率的缩放级别。
  • setConstrainResolution 设置视图是否应允许中间缩放级别。
  • setMaxZoom 为视图设置新的最大缩放级别。
  • setMinZoom 为视图设置新的最小缩放级别。
  • setRotation 设置该视图的旋转角度。任何旋转约束都将适用。

5.2 view 常见使用示例

5.2.1 zoom 示例

示例:设置zoom最大值和最小值

5.2.2 resolution 示例

示例:根据Resolution的不同,显示不同的底图

5.2.3 extent 示例

示例:set extent 和 fit extent功能展示

5.2.4 center 示例

示例: 获取地图的中心点经纬度信息

5.2.5 projection 示例

示例: 非4326,3857的投影方法

5.2.6 rotation 示例

示例:设置地图左右旋转功能


六、Openlayers 基础 - layer

图层就像是含有文字或图形等元素的图片,一张张按顺序叠放在一起,组合起来形成页面的最终效果。
在这里插入图片描述

在 openlayers 中,图层是使用 layer 对象表示的,主要有 WebGLPoints Layer、热度图(HeatMap Layer)、图片图层(Image Layer)、切片图层(Tile Layer)和 矢量图层(Vector Layer)五种类型,它们都是继承 Layer 类的。

6.1 加载地图

6.1.1 加载谷歌地图

示例:加载谷歌地图

6.1.2 加载OSM地图

示例:加载OSM地图

6.1.3 加载Bing地图

示例:加载Bing地图

6.1.4 加载Mapbox地图

示例:加载Mapbox地图

6.1.5 加载baidu地图

示例:加载baidu地图

6.1.6 加载Arcgis地图

示例: 加载Arcgis地图

6.1.7 加载高德地图

示例: 加载高德地图

6.1.8 加载天地图

示例:加载天地图


七、Openlayers 基础 - source

八、Openlayers 基础 - style


九、Control

控件是一个可见的小部件,其 DOM 元素位于屏幕上的固定位置。 它们可以涉及用户输入(按钮),或者仅提供信息; 位置是使用 CSS 确定的。 默认情况下,它们放置在 CSS 类名为 ol-overlaycontainer-stopevent 的容器中,但可以使用任何外部 DOM 元素。

.在Openlayers中多数Controls直接可以在地图上添加,比如Navigation(导航栏)。第二类是需要放在Div元素中才能用。第三类需要放置在panel(面板)中的操作类似于网页HTML中button按钮,需要点击或绑定才能起作用。最后一类就是自定义类型的。

9.1 添加删除control

  • addControl(control) 将给定的控件添加到地图中
  • removeControl(control) 从地图中移除已给定的控件

9.2 control示例

9.2.1 比例尺 - ScaleLine

示例:添加比例尺功能

9.2.2 鹰眼/缩小图 - OverviewMap

示例:添加鹰眼功能

9.2.3 全屏 - FullScreen

示例:添加全屏显示功能

9.2.4 版权信息 - Attribution

示例:修改自定义地图版权信息

9.2.5 旋转地图 - Rotate

示例:添加旋转地图功能

9.2.6 放大缩小 - Zoom

示例:自定义地图放大缩小按钮功能

9.2.7 缩放滑块控件 - ZoomSlider

示例: 添加缩放滑块控件

9.2.8 鼠标位置 - MousePosition

示例: 显示鼠标经纬度信息

9.2.9 ZoomToExtent

示例: ZoomToExtent

9.2.10 清除所有控件

示例: 清除所有控件,按需添加Control


十、Interaction

在Openlayers中,需要用到一些设备行为来进行交互,这里面就惨生了一个概念Interaction。 它是用来控制地图的。和控件一样的作用。不过它们的区别是控件触发都是一些可见的 HTML元素触发,如按钮、链接等,而交互功能不可见的,如鼠标双击、滚轮滑动,手机设备的手指缩放等。

10.1示例

10.1.1 draw 示例

示例:使用draw画点、线、圆、多边形
示例:使用draw画正方形、矩形、六芒星

10.1.2 modify 示例

示例: 绘制draw多边形,并modify编辑图形

10.1.3 select 示例

示例: select选择feature,显示信息

10.1.4 Drag-and-Drop 示例

示例: Drag-and-Drop拖拽文件解析显示图形

10.1.5 DragPan示例

示例: 拖拽放大所选区域

10.1.6 DragZoom 示例

示例: 拖拽实现放大所选区域


十一、Overlay

Overlay这个组件在Openlayers 项目中是经常要用到的,使用的场景通常是作为弹窗,显示某点或者某区域的信息它不是根据屏幕位置固定的,而是与地理坐标相关联,因此平移地图将移动 Overlay。常用的大致有三类,弹窗、标注、文本信息。每个覆盖物都会生成对应的HTML元素,所以我们也可以使用css来修改去样式。

11.1 核心API

11.1.1 常用属性

id,覆盖物的唯一标识 ,便于 getOverlayById 方法取得相应的 overlay。
element , 要添加到覆盖物元素。
offset, 偏移量,像素为单位。overlay 相对于放置位置(position)的偏移量,默认值是 [0, 0],正值分别向右和向下偏移。
position,在地图所在的坐标系框架下,overlay 放置的位置。
positioning,overlay 对于 position 的相对位置,可能的值是’bottom-left’,‘bottom-center’,‘bottom-right’, ‘center-left’,‘center-center’,‘center-right’,‘top-left’, ‘top-center’,和’top-right’。
stopEvent,是否应停止事件传播到地图视口。
autoPanAnimation,用于将叠加层平移到视图中的动画选项。此动画仅在autoPan启用时使用。可以提供Aduration和easing来自定义动画。如果autoPan作为对象提供,则弃用并忽略。
className,CSS 类名。

11.1.2 overlay 常用方法

• setPosition,设置 position 属性。
• getElement,获取传入的元素节点。
• getId,获取 overlay 的 id。
• getMap,获取与 overlay 关联的 map对象。
• getOffset,获取 offset 属性。
• getPosition,获取 position 属性。
• getPositioning,获取 positioning 属性。
• setElement, 设置元素节点。
• setMap,设置map对象。
• setOffset,设置 offset。
• setPositioning,设置 positioning 属性。

11.2 overlay 示例

11.2.1 弹窗中显示经纬度信息

示例:弹窗中显示经纬度

11.2.2 弹窗中播放mp4视频

示例:弹窗中播放mp4视频

11.2.3 弹窗中显示地点详情

示例:弹窗中显示地点详情


十二、Geom 几何图形

几何类型包括: “Point”、“LineString”、“LinearRing”、“Polygon”、“MultiPoint”、“MultiLineString”、“MultiPolygon”、“GeometryCollection”和“Circle”

12.1 示例

12.1.1 Point 示例

示例:显示点

12.1.2 LineString 示例

示例:显示线段

12.1.3 LinearRing示例

示例:

12.1.4 Polygon 示例

示例: 显示多边形

12.1.5 MultiPoint 示例

示例:显示多个点

12.1.6 MultiLineString 示例

示例:显示多个线段

12.1.7 MultiPolygon示例

示例:显示多个多边形

12.1.8 GeometryCollection 示例

示例:显示几何图形集合

12.1.9 Circle 示例

示例:显示圆


十三、Openlayers 学习资料

13.1 Openlayers 官方网站

网址:https://openlayers.org/

13.2 Openlayers示例大全

参考:openlayers 常用示例大全

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

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

相关文章

git、、

有学弟想快速上手git,我就发个文章吧。 git区域划分: 缓冲区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中。版本库:工作区有一个隐藏目录 .git,就是 Git 的版本…

【目标检测-数据集准备】DIOR转为yolo训练所需格式

【目标检测】DIOR遥感影像数据集,转为yolo系列模型训练所需格式。 标签文件位于Annotations下,格式为xml,yolo系列模型训练所需格式为txt,格式为 class_id x_center,y_center,w,h其中,train,text&#xff…

css 各种方位计算 - client系列 offset系列 scroll系列 x/y 系列

offset系列 HTMLElement.offsetTop - Web API 接口参考 | MDN 一文读懂offsetHeight/offsetLeft/offsetTop/offsetWidth/offsetParent_heightoffset-CSDN博客 client系列 搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop-CSDN博客 scroll系列 秒懂scr…

JAVA基础—JVM内存结构基础需知

1.JVM内存结构 JVM内存结构分为5个区域:方法区,虚拟机栈,本地方法栈、堆、程序计数器。 1.方法区(Method Area):用于存储类的结构信息、常量、静态变量、即使编译器编译后的代码等数据。方法区也是所有线…

Spring项目问题—前后端交互:Method Not Allowed

问题 前后端交互时出现Method Not Allowed问题 Ajax中使用的是get,方法仍然出现post方法报错 Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method POST not supported] 浏览器中没有报错,只是接收不到后端返…

Midjourney视觉垫图

https://github.com/lllyasviel/Fooocus/discussions/117https://github.com/lllyasviel/Fooocus/discussions/117掌握Midjourney的垫图技巧:AI绘画中的参考利器本期将深入了解AI绘画的垫图技巧,让作品获得更好的出图效果https://mp.weixin.qq.com/s/RS2…

【QT 5 +Linux下qt软件点击.sh脚本运行+Dconf编辑器+学习他人文章+番外篇:点击脚本运行软件】

【QT 5 Linux下qt软件点击.sh脚本运行Dconf编辑器学习他人文章番外篇:点击脚本运行软件】 1、前言2、实验环境3、自我学习总结-本篇总结1、说明:代替qt的快捷方式2、适用性更广3、了解工具:Dconf编辑器注意事项: 4、参考链接-感谢…

力扣L11--- 344.反转字符串(JAVA版)-2024年3月15日

1.题目 2.知识点 交换两个变量值的代码 char temps[left];//temp为暂时的变量,left是左指针,将left暂时存储在temp里面s[left]s[right];//将右指针的值赋给左指针s[right]temp;//将temp的值给右指针left;//左指针向左移动right--;//右指针向右移动3.代码…

Python QT 之PySide6简单入门

目录 1.开发环境配置 1.1 下载PySide6 2.2 配置pycharm相关快捷方式 PySide6_Designer - QT Designer 设计UI PySide6_UIC - 将QT Designer生成的UI文件转换为python文件 PySide6_RCC - 将RCC文件转换为python文件 2.第一个开发实例 2.1 QT desiger设计界面 2.2 将ui文…

南大通用数据库-Gbase-8a-学习-43-SQL长时间处于Writing to net状态排查

目录 一、问题截图 二、排查思路 1、Gbase8a SQL有几种状态 2、问题导致原因猜想 3、观察服务端(集群端)网络情况 4、观察客户端网络情况 5、排查客户端程序处理数据慢 5.1、send (1)声明 (2)作用…

【SCI论文】“学术丑闻揭露:当AI写作遭遇学术审稿,ChatGPT意外成为论文共作者!“

在最近的学术圈中出现了一篇令人哭笑不得的论文。这篇文章标题为“The three-dimensional porous mesh structure of Cu-base…”发表在《Surfaces and Interfaces》杂志上,竟然包含了ChatGPT的提示语,暴露出了审稿过程中可能的疏忽。 文章讨论了铜基金…

行业突破!四信实现低延时摄像头弱网状态100ms以内实时传输

随着人工智能、大数据、区块链等技术在城市中快速发展,人们日常生活中已经离不开网络的支撑,而实现“人与人”、“人与物”及“物与物”之间高速连接应用的“时延”,是网络支撑中最重要的存在。 以城市生活例子为例,当网络延时出现…

王勇:硬科技的下一站 | 演讲嘉宾公布

一、智能耳机与可穿戴专题论坛 智能耳机与可穿戴专题论坛将于3月27日同期举办! 智能耳机、可穿戴设备已经逐渐融入我们的生活,它们不仅带来了便捷与舒适,更在悄然改变着我们的生活方式和工作模式。在这里,我们将分享最新的研究成果…

图像分类技术在电商平台的创新应用与实践

一、引言 在当今快速发展的互联网电商领域,商家面临着激烈的竞争和不断变化的市场需求。我们在服务电商的过程中,利用AI大模型技术创新性地引入了图像分类技术,为供应链管理带来了革命性的变革。接下来,我们将深入探讨这一项目的…

【STM32学习】PWM学习,(二)驱动LED呼吸灯

上文学习了PWM的基本概述,和PWM的各种参数,本文 学习使用PWM信号去驱动LED实现呼吸灯的效果。 1、PWM驱动LED呼吸灯 1.1介绍 目标:单片机输出一个PWM信号,驱动LED呼吸亮灭。PWM占空比高,则LED更亮;PWM占空…

javase day05笔记

第5天课堂笔记 四舍五入问题,保留两位小数★ System.out.printf("%.2f\n" , d);选择结构★★★ ifif(){}else{}:二选一if(){}else if(){}else if(){} else{} :多重if:多选1 和 equals区别★★★ 基本数据类型:对比值…

STM32F103 CubeMX 使用USB生成鼠标设备

STM32F103 CubeMX 使用USB生成鼠标设备 1 配置cubeMX1.1配置外部晶振,配置debug口1.2 配置USB1.3 配置芯片的时钟1.4 生成工程 2. 编写代码2.1 添加申明2.2 main函数代码 1 配置cubeMX 1.1配置外部晶振,配置debug口 1.2 配置USB 1.3 配置芯片的时钟 需…

【算法与数据结构】深入解析二叉树(二)之堆结构实现

文章目录 📝二叉树的顺序结构及实现🌠 二叉树的顺序结构🌠 堆的实现🌠 堆的实现🌉堆向下调整算法🌉堆的创建🌉建堆时间复杂度🌉堆的插入🌉堆的删除 🌠堆向上调…

sqllab第十九关通关笔记

知识点: 错误注入 最大长度为32位;如果目标长度>32时,需要利用截取函数进行分段读取referer注入 insert语句update语句 通过admin admin进行登录发现页面打印除了referer字段的信息 这应该是一个referer注入 首先进行测试一下 构造payl…

MATLAB/SIMULINK流水账

01.模块大小的一致性 当模型建完以后,模型大小比较散乱,可以利用该功能快速整理模块的大小 例如:如下5个constant模块,大小不一 若想把所有的模块都调整至跟第3个模块一样的大小 需要先把5个模块全部选取起来,另外再…