Tippecanoe安装使用

news2024/9/21 17:34:57

Tippecanoe安装使用

介绍

tippecanoe是mapbox官方提供的一个开源矢量切片工具,用C++语言编写的。

Tippecanoe 的目标是为您的数据制作一个与比例无关的视图,以便在从整个世界到单个建筑物的任何级别上,您都可以看到数据的密度和纹理,而不是通过删除所谓的不重要的特征进行简化或聚类或聚合它们。

目前软件默认安装,只能支持macos或者linux系统。

tippecanoe官网

安装

MacOS安装

在 OSX 上安装 tippecanoe 的最简单方法是使用Homebrew:

brew install tippecanoe

Linux源码安装

这里以Centos7为例

安装相关依赖

yum install -y gcc gcc-c++ automake autoconf libtool make sqlite-devel.x86_64 zlib-devel

源码安装

从官网下载安装包,上传到服务器

# 编译
make

# 安装
make install

查看版本

tippecanoe -v

image-20221218105746800

至此tippecanoe安装完成

windows安装

参考地址

使用

tippecanoe进行切片的时候推荐使用GeoJson格式的原始数据

矢量转GeoJSon的方式有很多,可以使用QGIS转换或者使用ogr2ogr。

tippecanoe进行切片最后生成的就是pbf格式。一种是散列状态的pbf,一种是mbtiles格式的SQLlite文件。推荐使用mbtiles格式。

切片后的数据是3857坐标系的

生成mbtiles格式

tippecanoe -zg -Bg -o /point/output/million/point.mbtiles --drop-densest-as-needed --extend-zooms-if-still-dropping /point/geo_point_one_million.geojson

image-20221217121237020

image-20221218114549681

生成后的文件可以使用GeoServer来发布数据。

image-20221218114945308

image-20221218115033726

生成散列的pbf格式

tippecanoe -zg -e /point/output/million2 --drop-densest-as-needed --extend-zooms-if-still-dropping /point/geo_point_one_million.geojson

image-20221218115351893

image-20221218115420786

image-20221218115434810

生成散列数据可以考虑使用NGINX等服务器来发布

参数设置

有很多选择。-o 很多时候,除了output之外,您不想使用它们中的任何一个.mbtiles来命名输出文件,并且可能不想-f删除已经存在的具有该名称的文件。

如果您不确定适合您数据的 maxzoom 是多少,我们-zg会根据特征密度为您猜测一个。

Tippecanoe 通常会在低于 maxzoom 的缩放下丢弃一小部分点特征,以防止低缩放图块变得太大。如果您有一个较小的数据集,其中所有点都适合而不会丢失任何一个,请使用-r1保留所有点。如果您确实想要点下降,但您仍然希望瓷砖比想象的更密集-zg ,请使用-B将 basezoom 设置为低于 maxzoom。

如果尽管进行了上述设置,您的某些图块还是显得太大,您通常会希望--drop-densest-as-needed在每个缩放级别上删除任何必要的功能部分,以使该缩放级别的图块正常工作。

如果您的功能有很多属性,-y请只保留您真正需要的属性。

如果您的输入格式为换行符分隔的 GeoJSON,请使用它-P来加快输入解析速度。

输出瓦片集

  • -o 文件.mbtiles--output=文件.mbtiles:命名输出文件。
  • -e directory--output-to-directory= directory:将图块写入指定目录而不是 mbtiles 文件。
  • -f或者--force:删除 mbtiles 文件,如果它已经存在而不是给出错误
  • -F--allow-existing:如果元数据或切片表已存在或无法设置元数据字段,则继续(不删除现有数据)。你可能不想使用它。

瓦片集描述和归属

  • -n name--name=name:tileset 的人类可读名称(默认 file.json)
  • -A text--attribution=text:属性 (HTML) 将与使用此 tileset 数据的地图一起显示。
  • -N description--description=description:tileset 的描述(默认文件 .mbtiles)

输入文件和图层名称

  • name.jsonname.geojson:将命名的 GeoJSON 输入文件读入名为name的图层。
  • name.json.gzname.geojson.gz:将命名的 gzip 压缩 GeoJSON 输入文件读入名为name的层中。
  • name.geobuf:将命名的 Geobuf 输入文件读入名为name的图层。
  • name.csv:将命名的 CSV 输入文件读入名为name的层中。
  • -l name--layer=name:使用指定的图层名称,而不是从输入文件名或输出 tileset 中派生名称。如果指定了多个输入文件,这些文件将全部合并到单个命名层中,即使它们尝试使用-L.
  • -L name :file.json--named-layer=name :file.json:为单个文件指定图层名称。如果您的 shell 支持它,您可以使用-L name:<(cat dir/*.json)之类的子 shell 重定向来为流式输入的输出指定层名称。
  • -L{layer-json}--named-layer={layer-json}:通过 JSON 对象指定输入文件和图层选项。JSON 对象必须包含一个"file"键来指定要读取的文件名。(如果"file"键是空字符串,则表示从标准输入流中读取。)它还可能包含一个"layer"字段来指定图层的名称,和/或一个"description"字段来指定图层在 tileset 元数据中的描述,以及/ 或"format"要指定的字段csvgeobuf文件格式(如果从name. 例子:
tippecanoe -z5 -o world.mbtiles -L'{"file":"ne_10m_admin_0_countries.json", "layer":"countries", "description":"Natural Earth countries"}'

CSV 输入文件目前仅支持点几何,来自名为latitudelongitudelatlonlonglngx或的列y

输入的并行处理

  • -P或者--read-parallel:使用多个线程一次读取每个 GeoJSON 输入文件的不同部分。这仅在输入是行分隔的 JSON 并且每个功能都在其自己的行上时才有效,因为它对功能周围的顶级结构一无所知。否则可能会产生虚假的“EOF”错误消息。如果输入是可以映射到内存的命名文件而不是只能顺序读取的流,则性能会更好。

如果输入文件以RFC 8142记录分隔符开头,将自动调用输入的并行处理,在记录分隔符处拆分,而不是在所有换行符处拆分。

如果输入文件是 Geobuf 格式,并行处理也会自动进行。

输入投影

  • -s 投影--projection=投影:指定输入数据的投影。当前支持的是EPSG:4326(WGS84,默认)和EPSG:3857(Web Mercator)。一般来说,如果可能的话,您应该为您的输入文件使用 WGS84。

缩放级别

  • -z zoom--maximum-zoom=zoom:Maxzoom:生成图块的最高缩放级别(默认为 14)
  • -zg--maximum-zoom=g:根据特征间距猜猜什么是合理的 maxzoom。
  • -Z zoom--minimum-zoom=zoom:Minzoom:生成图块的最低缩放级别(默认为 0)
  • -ae--extend-zooms-if-still-dropping:如果在该缩放级别仍删除功能,则增加 maxzoom。通常仅适用于最大缩放级别的详细信息和简化选项将同时适用于最初指定的最大缩放级别和超出该级别的任何添加级别。
  • -R zoom /x /y--one-tile=zoom /x /y:设置 minzoom 和 maxzoom 以缩放并仅生成该缩放级别的单个指定图块。

如果您知道您希望表示数据的精度,或相应打印地图的地图比例尺,则此表显示了 -z在您使用默认-d详细信息 12 时对应于各种选项的近似精度和比例尺:

缩放级别精度(英尺)精度(米)地图比例尺
-z032000 英尺10000米1:320,000,000
-z116000 英尺5000米1:160,000,000
-z28000 英尺2500米1:80,000,000
-z34000 英尺1250 米1:40,000,000
-z42000 英尺600米1:20,000,000
-z51000 英尺300米1:10,000,000
-z6500 英尺150 米1:5,000,000
-z7250 英尺80 米1:2,500,000
-z8125 英尺40米1:1,250,000
-z964 英尺20米1:640,000
-z1032 英尺10米1:320,000
-z1116 英尺5米1:160,000
-z128 英尺2米1:80,000
-z134 英尺1米1:40,000
-z142 英尺0.5米1:20,000
-z151 英尺0.25米1:10,000
-z166 英寸15 厘米1:5000
-z173 英寸8 厘米1:2500
-z181.5 英寸4 厘米1:1250
-z190.8 英寸2 厘米1:600
-z200.4 英寸1 厘米1:300
-z210.2 英寸0.5 厘米1:150
-z220.1 英寸0.25 厘米1:75

平铺分辨率

  • -d detail--full-detail=detail:最大缩放级别的细节(默认 12,对于 2^12=4096 的平铺分辨率)
  • -D detail--low-detail=detail:较低缩放级别的细节(默认 12,对于 2^12=4096 的平铺分辨率)
  • -m detail--minimum-detail=detail:如果瓷砖在常规细节处太大,它将尝试的最小细节(默认为 7)

所有内部数学都是根据 32 位图块坐标系完成的,因此地球大小的 1/(2^32),或大约 1 厘米,是最小的可区分距离。如果maxzoom + detail > 32,则与使用较小的maxzoomdetail相比,不会获得额外的分辨率。

过滤特征属性

  • -x name--exclude=name:从所有功能中排除命名属性。您可以指定多个-x选项以排除多个属性。(不要在单个 . 中用逗号分隔名称-x。)
  • -y name--include=name:包括所有功能中的命名属性,不包括所有未明确命名的属性。您可以指定多个-y选项以明确包含多个属性。(不要在单个 . 中用逗号分隔名称-y。)
  • -X--exclude-all:排除所有属性并仅编码几何图形

修改要素属性

  • -Tattribute :type--attribute-type=attribute :type:将命名的特征属性强制为指定类型类型可以是、string、或。如果类型是,则(或者,如果是数字,则等)、、或空字符串的原始属性变为,否则变为。如果类型为or且原始属性为非数字,则变为. 如果类型是并且原始属性是浮点数,则将其四舍五入为最接近的整数。float``int``bool``bool``0``0.0``false``null``false``true``float``int``0``int
  • -Yattribute :description--attribute-description=attribute :description:将descriptiontileset 元数据中的指定属性设置为description而不是通常的String, Number, 或Boolean.
  • -Eattribute :operation--accumulate-attribute=attribute :operation:保留已删除、按需合并或集群的特征中的命名属性。**操作可以是 , sum, product, mean, max, min,concatcomma 来指定命名属性如何累积到幸存的要素中的同名属性上。
  • -peor --empty-csv-columns-are-null:将空 CSV 列视为空值而不是空字符串。
  • -aI--convert-stringified-ids-to-numbers:如果要素 ID 是数字的字符串表示形式,则将其转换为普通数字以用作要素 ID。
  • --use-attribute-for-id=name:使用具有指定名称的属性,就像它被指定为功能 ID 一样。(如果此属性是字符串化数字,您还必须使用-aI将其转换为数字。)

按属性过滤要素

  • -j filter or --feature-filter= filter:根据每层过滤器检查功能(如Mapbox GL 样式规范中所定义),并且仅包括匹配的功能。层中未指定过滤器的任何要素都将通过。图层过滤器"*"适用于所有图层。特殊变量$zoom指的是当前缩放级别。
  • -J filter-file--feature-filter-file= filter-file:类似-j,但从文件中读取过滤器。

示例:查找低scalerank但高的自然地球国家LABELRANK

tippecanoe -z5 -o filtered.mbtiles -j '{ "ne_10m_admin_0_countries": [ "all", [ "<", "scalerank", 3 ], [ ">", "LABELRANK", 5 ] ] }' ne_10m_admin_0_countries.geojson

示例:在低缩放级别仅保留主要的 TIGER 道路:

tippecanoe -o roads.mbtiles -j '{ "*": [ "any", [ ">=", "$zoom", 11 ], [ "in", "MTFCC", "S1100", "S1200" ] ] }' tl_2015_06001_roads.json

Tippecanoe 还接受 , 形式的表达式[ "attribute-filter", name, expression ]来过滤单个特征属性而不是整个特征。例如,您可以通过执行以下操作排除低缩放级别的道路名称

tippecanoe -o roads.mbtiles -j '{ "*": [ "attribute-filter", "FULLNAME", [ ">=", "$zoom", 9 ] ] }' tl_2015_06001_roads.json

表达式attribute-filter本身总是被认为是求值到true(换句话说,保留特征而不是丢弃它)。如果您想使用多个attribute-filter表达式,或使用其他表达式从同一图层中删除要素,请将它们包含在一个all表达式中,以便对它们进行评估。

按缩放级别删除固定比例的功能

  • -r rate--drop-rate=rate:在低于 basezoom 的缩放级别下点被丢弃的速率(默认 2.5)。如果您使用-rg,它会猜测一个下降率,该下降率将在最密集的图块中保留最多 50,000 个特征。您还可以指定一个带有-rg宽度的标记宽度,以允许最密集的图块中较少的特征来补偿较大的标记,或者指定-rf数字以允许最密集的图块中的最多数量的特征。
  • -B zoom--base-zoom=zoom:基本缩放,所有点都包含在图块中的级别(默认最大缩放)。如果您使用-Bg,它会猜测将在最密集的图块中保留最多 50,000 个要素的缩放级别。您还可以指定一个带有-Bg宽度的标记宽度,以允许最密集的图块中较少的特征来补偿较大的标记,或者指定-Bf数字以允许最密集的图块中的最多数量的特征。
  • -al--drop-lines:让“点”在较低的缩放下下降也适用于线条
  • -ap--drop-polygons:让“点”在较低的缩放下下降也适用于多边形
  • -K distance--cluster-distance=distance:聚类点(与 一样--cluster-densest-as-needed,但没有实验发现过程)大约在彼此的距离内。单位是标称 256 像素图块内的图块坐标,因此最大值 255 只允许每个图块一个特征。大约 10 的值可能适合典型的标记大小。行为见--cluster-densest-as-needed下文。

删除一小部分功能以保持在图块大小限制以下

  • -as--drop-densest-as-needed:如果图块太大,请尝试通过增加要素之间的最小间距将其减小到 500K 以下。发现的间距适用于整个缩放级别。
  • -ad--drop-fraction-as-needed:从每个缩放级别动态删除部分功能,以将大图块保持在 500K 大小限制以下。(这类似于-pd但适用于整个缩放级别,而不是每个图块。)
  • -an--drop-smallest-as-needed:从每个缩放级别动态删除最小的要素(物理上最小:最短的线或最小的多边形),以将大图块保持在 500K 大小限制以下。此选项不适用于点要素。
  • -aN--coalesce-smallest-as-needed:将每个缩放级别的最小要素(物理上最小:最短的线或最小的多边形)动态组合到附近的其他要素中,以将大图块保持在 500K 大小限制以下。此选项不适用于点要素,并且可能对 LineStrings 帮助不大。它主要用于多边形,以保持多边形覆盖的完整原始区域,同时仍然以某种方式减少要素数量。小多边形的属性不会保留在组合要素中(通过 除外--accumulate-attribute),只会保留它们的几何形状。此外,嵌套多边形合并到的多边形不一定是直接封闭的要素。
  • -aD--coalesce-densest-as-needed:将每个缩放级别中最密集的特征动态组合到附近的其他特征中,以将大图块保持在 500K 大小限制以下。(同样,主要用于多边形。)
  • -aS--coalesce-fraction-as-needed:将每个缩放级别的一小部分要素动态组合到附近的其他要素中,以将大图块保持在 500K 大小限制以下。(同样,主要用于多边形。)
  • -pd--force-feature-limit:从大图块中动态删除部分特征,以将它们保持在 500K 大小限制以下。它在瓷砖边界处可能看起来很难看。(这类似于-ad但单独应用于每个图块,而不是整个缩放级别。)您可能不想使用它。
  • -aC--cluster-densest-as-needed:如果图块太大,请尝试通过增加要素之间的最小间距并从每组中保留一个占位符要素来减小其大小。剩余的要素将被赋予一个"clustered": true属性以指示它代表一个集群,一个"point_count"属性以指示被集群到其中的要素的数量,以及一个"sqrt_point_count"属性以指示要素的相对宽度以表示该集群。如果被聚类的特征是点,代表特征将位于原始点位置的平均值;否则,将保留原始特征之一作为代表。

丢弃紧密重叠的特征

  • -g gamma--gamma=_gamma_:丢弃特别密集的点的速率(默认为 0,无效果)。伽马值为 2 会将相距小于一个像素的点的数量减少到其原始数量的平方根。
  • -aG--increase-gamma-as-needed:如果图块太大,请尝试通过增加-g伽玛将其减小到 500K 以下。发现的伽玛适用于整个缩放级别。您可能想--drop-densest-as-needed改用。

线和多边形简化

  • -S scale--simplification=scale:将线和多边形简化的容差乘以scale。标准容差试图将线或多边形保持在其正确位置的一个分块单元内。您可能最多可以达到 10 个左右,而不会出现太大的明显差异。
  • -psor --no-line-simplification: 不要简化线和多边形
  • -pS--simplify-only-low-zooms:不要在最大缩放下简化线和多边形(但在较低的缩放下进行简化)
  • -pn--no-simplification-of-shared-nodes:不要简化出现在多个要素中或在同一要素内多次使用的远离节点,这样相交的道路就不会丢失交叉点节点。--coalesce(如果您还使用or ,这将无效--detect-shared-borders。)
  • -pt--no-tiny-polygon-reduction:不要将非常小的多边形面积组合成代表它们组合面积的小正方形。

尝试改善共享多边形边界

  • -ab或者--detect-shared-borders: 以TopoJSON的方式,检测多个多边形之间共享的边界,并在每个多边形中进行相同的简化。这比单独考虑每个多边形需要更多的时间和内存。
  • -aL--grid-low-zooms:在maxzoom以下的所有缩放级别,将所有线和多边形对齐到阶梯网格,而不是允许对角线。您还需要指定平铺分辨率,可能是-D8. 此选项提供了一种在低缩放下显示连续宗地、网格化或分箱数据的方法,而不会用微小的多边形覆盖图块,因为要素要么被拉伸到网格单元,要么完全丢失,具体取决于它们在原始数据。你可能不想使用它。

控制裁剪到图块边界

  • -b pixels--buffer=pixels:从相邻图块复制特征的缓冲区大小。单位是“屏幕像素”——图块宽度或高度的 1/256。(默认 5)
  • -pc--no-clipping:不要将要素裁剪到图块的大小。如果某个要素与图块的边界或缓冲区完全重叠,则会将其完全包含在内。注意:这会产生非常大的图块集,尤其是对于大的多边形。
  • -pD--no-duplication:与 一样--no-clipping,每个要素都完好无损地包括在内,而不是切割到图块边界。此外,它仅包含在每个缩放级别的单个图块中,而不是可能包含在多个副本中。瓦片集的客户端必须检查相邻的瓦片(可能相距一定距离)以确保它们具有所有功能。

对每个图块中的要素重新排序

  • -pi--preserve-input-order:保留要素的原始输入顺序作为绘制顺序,而不是按地理顺序。(这是作为在最后恢复原始顺序而实现的,因此落点仍然是地理上的,这意味着它也撤消了-ao)。
  • -acor --coalesce:合并具有相同属性的连续特征。如果您有许多具有相同属性的小多边形并且您想将它们合并在一起,这将很有用。
  • -ao--reorder:重新排序要素,将具有相同属性的要素按顺序排列(而不是空间上大致相邻的要素),以尝试使它们合并。如果您使用--coalesce.
  • -ar--reverse:尝试反转线条的方向,使它们更好地合并和压缩。你可能不想使用它。
  • -ah--hilbert: 将特征置于希尔伯特曲线顺序而不是通常的 Z 顺序。这提高了空间相邻要素顺序相邻的可能性,并且应该改进密度计算和空间合并。它最终应该是默认值。

添加计算属性

  • -ag--calculate-feature-density:向每个要素添加一个新属性 ,tippecanoe_feature_density以记录要素在图块的该区域中的间隔密度。您可以在样式中使用此属性以在点密集的地方产生发光效果。它的范围可以从最稀疏区域的 0 到最密集区域的 255。
  • -ai或:向每个尚无的特征--generate-ids添加一个id(特征 ID,而不是名为 的属性)。id目前无法保证所id添加的功能在运行之间保持稳定,或者不会与手动分配的功能 ID 发生冲突。Tippecanoe 的未来版本可能会更改分配 ID 的机制。

尝试纠正错误的源几何

  • -awor --detect-longitude-wraparound:检测特征中的连续点何时跳到世界的另一边,并尝试修复几何体。
  • -pw--use-source-polygon-winding:不遵循 GeoJSON 多边形环顺序,而是使用源数据中的原始多边形缠绕来区分内部(顺时针)和外部(逆时针)多边形环。
  • -pW--reverse-source-polygon-winding:不遵循 GeoJSON 多边形环顺序,而是使用与源数据中原始多边形缠绕相反的方式来区分内部(逆时针)和外部(顺时针)多边形环。
  • --clip-bounding-box=minlon ,minlat ,maxlon ,maxlat:将所有特征裁剪到指定的边界框。

设置或禁用图块大小限制

  • -M bytes--maximum-tile-bytes=bytes:使用指定的字节数作为最大压缩图块大小而不是 500K。
  • -O features--maximum-tile-features=features:使用指定数量的特征作为图块中的最大值,而不是 200,000。
  • -pf--no-feature-limit:不要将切片限制为 200,000 个要素
  • -pk--no-tile-size-limit:不要将图块限制为 500K 字节
  • -pC--no-tile-compression:不压缩 PBF 矢量切片数据。如果您从渲染器收到“Unimplemented type 3”错误消息,可能是因为它期望使用此选项的未压缩切片而不是普通的 gzip 压缩切片。
  • -pgor --no-tile-stats: 不要tilestats在 tileset 元数据中生成行。没有tilestats的上传将需要更长的时间来处理。
  • --tile-stats-attributes-limit=count:包括tilestats最多count个属性的信息,而不是默认的 1000 个。
  • --tile-stats-sample-values-limit=counttilestats根据数值而不是默认的 1000 计算属性统计信息。
  • --tile-stats-values-limit=count:报告计数唯一属性值tilestats而不是默认的 100。

临时存储

  • -t 目录--temporary-directory=目录:将临时文件放在目录中。如果您不指定,它将使用/tmp.

进度指示器

  • -q或者--quiet:安静地工作,而不是报告进度或警告消息
  • -Qor --no-progress-indicator: 不报告进度,但仍然给出警告
  • -U seconds--progress-interval=seconds:不要比指定的秒数更频繁地报告进度。
  • -v或者--version: 报告 Tippecanoe 的版本号

过滤器

  • -C command--prefilter=command:指定要在开始组装每个图块时运行的 shell 过滤器命令
  • -c command--postfilter=command:指定在组装每个图块结束时运行的 shell 过滤器命令

前置和后置过滤器命令允许您在创建每个图块时对其特征进行可选的过滤或转换。它们是 shell 命令,以缩放级别、X 和 Y 作为$1$2$3参数运行。Tippecanoe 的未来版本可能会为更多上下文添加额外的参数。

这些特性作为标准输入上一系列以换行符分隔的 GeoJSON 对象提供给过滤器,并tippecanoe期望从过滤器的标准输出中读取另一组 GeoJSON 特性。

在进行线简化、多边形拓扑修复、伽马计算、动态特征删除或其他内部处理之前,预过滤器以最高分辨率接收特征。后置过滤器在简化、清理和删除之后以分块分辨率接收特征。

图层名称作为tippecanoe要素元素的一部分提供,必须传递才能将要素保留在正确的图层中。在预过滤器的情况下,tippecanoe元素还可能包含indexsequenceextentdropped,元素,必须通过这些元素才能进行 、 和 等 --drop-densest-as-needed内部--drop-smallest-as-needed操作--preserve-input-order

例子:

  • 制作 Natural Earth 国家的 tileset 以缩放级别 5,并将 GeoJSON 功能复制到tiles/z/x/y.geojson目录层次结构中的文件。
tippecanoe -o countries.mbtiles -z5 -C 'mkdir -p tiles/$1/$2; tee tiles/$1/$2/$3.geojson' ne_10m_admin_0_countries.json
  • 制作 Natural Earth 国家的瓦片集以缩放级别 5,但仅包括与德国边界框相交的瓦片。(该limit-tiles-to-bbox脚本位于 Tippecanoe 源目录中。)
tippecanoe -o countries.mbtiles -z5 -C './filters/limit-tiles-to-bbox 5.8662 47.2702 15.0421 55.0581 $*' ne_10m_admin_0_countries.json
  • 在 Tippecanoe County 制作 TIGER 道路的图块集,除了主要和次要道路(由 TIGER 分类)之外的所有道路都在缩放级别 11 以下。
tippecanoe -o roads.mbtiles -c 'if [ $1 -lt 11 ]; then grep "\"MTFCC\": \"S1[12]00\""; else cat; fi' tl_2016_18157_roads.json

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

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

相关文章

02---前端框架搭建

1、创建项目 1.该有的nodejs 、vue都要安装上&#xff0c;我用的是vuecli3&#xff0c;所以可以使用可视化界面 来创建项目&#xff08;更加直观&#xff09;&#xff0c;当然你也可以采用命令行的方式创建项目。 2.cmd命令行输入&#xff1a; vue ui 3.在打开的可视化页面中…

基于asp.net193酒店客房预订网站系统-计算机毕业设计

项目介绍 本酒店系统使用asp.net技术制作,在前台为普通用户提供预定和查询等系统使用功能&#xff0c;在后台为酒店管理员提供对系统平台的管理功能。在前台为用户提供的操作功能包括以下内容&#xff1a;站内新闻、用户注册、酒店查看&#xff0c;留言板等功能。此系统为管理…

AMAIZINGIC晶焱科技:Wi-Fi 6E 路由器产品的ESD/EOS防护方案

AMAIZINGIC晶焱科技&#xff1a;Wi-Fi 6E 路由器产品的ESD/EOS防护方案 随着无线网路的发展&#xff0c;IEEE协会于2020年提出了最新的Wi-Fi 6E&#xff0c;此版本为Wi-Fi 6的延伸版本&#xff0c;除了Wi-Fi 6原先支援的2.4GHz及5GHz的频段外&#xff0c;新增了6GHz的频段&…

功能超级强大,Python 命令行解析工具 argparse很好用

在工作中&#xff0c;我们经常需要从命令行当中解析出指定的参数&#xff0c;而 Python 也提供了相应的标准库来做这件事情&#xff0c;比如 sys, optparse, getopt, argparse。这里面功能最强大的莫过于 argparse&#xff0c;下面就来看看它用法。 import argparse # 使用 a…

Java+SSM在线商城系统电商购物系统(含源码+论文+答辩PPT等)

项目功能简介: 该项目采用的技术实现如下 后台框架&#xff1a;Spring、SpringMVC、MyBatis UI界面&#xff1a;BootStrap、jQuery 、JSP 数据库&#xff1a;MySQL 系统分为前台订票和后台管理&#xff1a; 1.前台商城 商品分类展示、商品详情、商品推荐、购物车、下单、支付 客…

课题设计基于nodejs购票系统的设计与实现.zip(论文+源码+ppt文档+视频录制)

第 1 章 绪 论 3 1.1研究现状及存在问题 3 1.2主要工作 4 第 2 章 系统开发技术概述 5 2.1 B/S 架构模式与C/S 架构模式 5 2.2 nodejs框架模式 6 第 3 章 需求分析 7 3.1 系统情况概述 7 3.2 系统功能性需求分析 9 3.3 系统非功能性需求分析 9 3.4 系统用例图 10 第 4 章 系统设…

【JavaSE】文件读写

目录 一、文件 1、文件的概念 1.广义 2.狭义 二、路径 1、绝对路径 2、相对路径 1.进入下一级./ 2.回退上一级../ 三、Java里的文件基本操作----File类 1、说明 2、File类的基本操作 1.基本方法 ​2.创建与删除文件 3.创建目录 4.文件的重命名 四、文件的读写操…

信息安全技术

安全分析模型自动化调优 MLOps&#xff08;Machine Learning Operations&#xff09;是一种人工智能 的工程实践&#xff0c;是面向机器学习项目的研发运营管理体系 。旨在实现 ML 管道的操作、ML 模型的部署和管理标准化&#xff0c;支持ML 模型的发布、激活、监控、性能跟踪…

【Spring Cloud】Nacos命名空间Namespace的介绍与使用

本期目录1. Namespace介绍2. 创建Namespace3. 配置Namespace专栏精选文章1. Namespace介绍 Namespace 通常用来做环境隔离。例如开发环境 dev 、测试环境 test 和生产环境 pro 之间的服务/数据相互隔离&#xff0c;无法相互访问。 Nacos 中服务和数据存储的最外层都是 Namespa…

常用性能测试工具的比较

目录性能测试的重要性针对接口的性能测试性能测试基准接口性能测试的主要指标abenchjMeterKelude性能脚本各种监控工具参考总结性能测试的重要性 众所周知性能测试在软件测试中占有举足轻重的作用&#xff0c;尤其是对于互联网产品这种具有大用户量&#xff0c;大数据量&#…

Spring Boot学习篇(一)

Spring Boot学习篇(一) 1 Spring、SpringBoot、SpringCloud有什么区别&#xff1f; spring一般指Spring框架&#xff08;SpringFramework&#xff09;&#xff0c;它是一个开源、轻量级的Java应用开发框架。其核心是控制反转IOC和面向切面编程AOP。Spring提供了很多包括ORM、…

Kaggle 新赛 | GoDaddy 微型企业密度预测

文章目录一、比赛背景和目标1. 背景2. 比赛目标二、提交、时间线和奖项三、代码要求一、比赛背景和目标 1. 背景 美国政策领导人努力发展更具包容性和抗衰退能力的经济体。他们也意识到&#xff0c;随着科技的进步&#xff0c;创业从来没有像今天这样容易。无论是创造一个更合…

【阙值分割】粒子群算法自适应多阈值图像分割【含Matlab源码 1459期】

⛄一、粒子群算法自适应多阈值图像分割简介 理论知识参考&#xff1a;【基础教程】基于matlab图像处理图像分割【含Matlab源码 191期】 粒子群优化的多阈值图像自分割算法 ⛄二、部分源代码 clc;clear;close all; %% 输入图像&#xff1b; Imag imread(‘24063.jpg’);%29…

【算法】常见的排序算法(插入排序、希尔排序、选择排序、冒泡排序、快速排序、归并排序)

目录一.常见排序类型二.排序详解1.冒泡排序2.选择排序3.插入排序4.希尔排序5.快速排序6.归并排序一.常见排序类型 插入排序&#xff1a;插入排序、希尔排序选择排序&#xff1a;简单选择排序、堆排序交换排序&#xff1a;冒泡排序、快速排序归并排序基数排序(又叫桶排序)八万个…

Java项目:新闻推荐管理系统(java+SSM+JavaScript+Ajax+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 项目介绍 本项目新闻推荐管理系统&#xff1b; 前台: 登录、首页、全部新闻、系统特色、猜你喜欢、分类、评论 后台&#xff1a; &#xff08;1&#xff09;文件管理&#xff1a;文件列表。 &#x…

3.无重复字符的最长子串

原题&#xff1a;https://leetcode.cn/problems/longest-substring-without-repeating-characters/ 目录 题目描述 题解 代码实现 题目描述 给定一个字符串s&#xff0c;请你找出其中不含有重复字符的最长子串的长度。 示例 1&#xff1a; 输入&#xff1a;s "…

微型计算机技术及应用笔记

微型计算机概述 主机系统包括&#xff1a; CPU存储器输入输出接口总线CPU包括&#xff1a; 运算器&#xff08;ALU&#xff09;控制器&#xff08;CU&#xff09;寄存器组&#xff08;Register&#xff09;寄存器&#xff1a;通用寄存器、专用寄存器 控制器由指令寄存器、指令…

攻防世界——Web新手练习区

目录 view_source get_post robots ​backup cookie disabled_button simple_js xff_referer weak_auth command_execution simple_php view_source 知识点&#xff1a; 查看网页源代码的几种方式&#xff1a; 按F12键&#xff0c;点击elements可以查看源代码快捷…

《图解TCP/IP》阅读笔记(第六章 6.1、6.2)—— 传输层的作用、端口号

第六章 TCP与UDP TCP与UDP和赫赫威名&#xff0c;在此前几章已略有耳闻。 TCP提供可靠的通信传输&#xff0c;而UDP则常被用于让广播和细节控制交给应用的通信传输。 首先&#xff0c;我们先来回顾一下传输层的定义。 上一章中提到过&#xff0c;IP中有一个协议字段&#x…

猿如意|程序员的如意神器之【chat GPT】测评。

chat GPT测评1、使用感受2、功能展示3、期待优化地方3.1 猿如意网页版搜索功能3.2 chat GPT3.2.1 测试抢券才能体验3.2.2 聊天体验1、使用感受 首先&#xff0c;需要对猿如意进行点赞。 正如宣传语所说&#xff0c;猿如意&#xff0c;程序员的的如意兵器&#xff0c;这句话&am…