在SuperMap GIS产品体系中,采取了一系列的措施来提高在线地图访问的效率,其中瓦片技术是最有效的方式。瓦片是指在网络地图服务中进行地图浏览、查询、编辑、分析等操作时,对出现的地图数据/图片按照特定的方式进行预先切图和存储,以便在以后访问同样的数据/图片时不需要服务器重新生成,从而提高数据的访问效率。目前,SuperMap瓦片类型主要包括栅格瓦片、矢量瓦片和三维瓦片。

目录

  • 1.1.栅格瓦片
    • 1.1.1.应用场景
    • 1.1.2.产品选型
    • 1.1.3.技术方案
  • 1.2.矢量瓦片
    • 1.2.1.应用场景
    • 1.2.2.产品选型
    • 1.2.3.技术方案
    • 1.2.4.最佳实践
    • 1.2.5.友商矢量瓦片常见问题
  • 1.3.三维瓦片(S3M)
    • 1.3.1.应用场景
    • 1.3.2.产品选型
    • 1.3.3.技术方案

1.1.栅格瓦片

栅格瓦片是包含了一系列比例尺、一定地图范围内的地图切片文件。栅格瓦片按照金字塔结构组织,每张瓦片都可通过级别、行列号唯一标记。在平移、缩放地图时,浏览器根据金字塔规则,计算出所需的瓦片,从瓦片服务器获取并拼接。栅格瓦片,是一种改善地图浏览用户体验的优化策略。随着GIS技术的发展,栅格瓦片技术已经相对成熟。目前,国内的大多数在线地图应用,如百度地图、Bing Maps、Google Maps等都采用了栅格瓦片技术加载地图底图。
       栅格瓦片是一种比较传统的模式,其本质上是将空间数据(栅格数据和矢量数据)分别渲染为不同缩放级别的地图图片,然后将各个级别的图片按照一定规则切分,按照一定的 “规则组织”,存储到硬盘或数据库中,构成一幅完整的地图。

1.1.1.应用场景

传统的栅格瓦片主要满足用户快速浏览地图的需求,主要应用在更新较少的地图底图数据中。
       随着web GIS的发展,用户对地图显示与传输要求提高,栅格瓦片技术很好的解决了这一问题,极大地降低服务器和网络带宽的负担,提升地图浏览速度,主要应用在共享服务平台、时空信息云平台及智慧城市等地理底图数据的显示方面。

1.1.2.产品选型

SuperMap中栅格瓦片技术基于SuperMap GIS平台产品,主要通过SuperMap iDesktop 实现GIS数据的分析、处理和制图等工作;通过SuperMap iDesktop和SuperMap iServer实现地图切图,生成栅格瓦片;通过SuperMap iServer实现栅格瓦片的服务发布;通过SuperMap iClient、SuperMap iMobile、SuperMap iPortal实现栅格瓦片数据的可视化展示。

1.1.3.技术方案


(1)数据预处理
       在生成栅格瓦片前,先对数据进行投影转换、数据抽稀、限制比例尺等预处理,提高切图效率;同时,将数据渲染成符合要求的地图,为后续工作做准备。
(2)生成栅格瓦片
       将渲染后的地图,切分为栅格瓦片,以GIF、JPG、PNG等形式存储的。
       SuperMap支持单机、多进程、分布式切图。其中,SuperMap iDesktop提供单任务、多任务切图;SuperMap iServer 提供分布式切图服务。栅格瓦片的结果支持三种存储类型,即MongoDB、Geopackage及共享文件存储。
(3)发布栅格瓦片
       栅格瓦片可以通过SuperMap iServer发布。栅格瓦片如MBTiles、SMTiles、UGC(V5)等,均支持直接发布为REST地图服务和OGC标准服务。
(4)更新栅格瓦片
       在地图中,当图层的风格样式发生变化或者图层要素有增加/删除/修改时,就需要更新已有的栅格瓦片,以保证瓦片的时效性。对于栅格瓦片而言,要重新渲染、切图,才能实现瓦片的更新。

1.2.矢量瓦片

以图片为介质的栅格瓦片打开了互联网地图的大门,互联网地图得以迅速普及。但是,随着地图的移动化和应用的逐渐深入,栅格瓦片体积大、生成效率低等缺点愈加明显,已经无法满足应用的需求,矢量瓦片应运而生。矢量瓦片即将地图中的矢量图层以瓦片的形式进行切分和存储。
       与栅格瓦片相比,矢量瓦片具有以下优点:
       1) 矢量瓦片体积小,可高度压缩,占用的存储空间比栅格瓦片要小上千倍。一方面减小网络带宽消耗,另一方面使地图离线成为可能。
       2) 矢量瓦片生成效率高,节约时间。
       3) 矢量瓦片数据可交互、可在线编辑,而传统的栅格瓦片不可交互。
       4) 矢量瓦片支持样式的修改,不再需要为不同的样式而反复进行制图、渲染、切片、更新服务等过程。
       另一方面,矢量瓦片作为新兴技术,因成熟度不高,仍具有一些不足,如对前端技术的要求比较高,显示效果与源数据存在差异等。

1.2.1.应用场景

在地图服务的应用中,除了供用户浏览地图外,还应满足用户查询、选择、高亮等需求,矢量瓦片交互能力强,可以满足需求。
       矢量瓦片在存储时,其相对于栅格瓦片体积小,生成效率高,适合地图中时效性要求较高的地物要素的表达,如POI信息、路线信息等。应用场景如在天地图中,POI图层采用矢量瓦片技术,满足数据的实时更新需求。同时,可以实现地图离线,大幅提升了移动端地图的浏览性能,提高了工作的可能性和有效性。另外,矢量瓦片支持样式的修改,不再需要为不同的样式而反复进行制图、渲染、切片、更新服务等过程。应用场景如在国土行业中,存在海量的数据,当地图样式发生变化时,应用栅格瓦片需要重新切图,花费大量时间,而应用矢量瓦片,可以直接更改样式,省时省力。

1.2.2.产品选型

SuperMap中矢量瓦片技术基于SuperMap GIS平台产品,主要通过SuperMap iDesktop 实现GIS数据预处理和配图等工作;通过SuperMap iDesktop实现地图切图,生成矢量瓦片,支持单任务和多任务切图;通过SuperMap iServer实现矢量瓦片数据的服务发布;通过SuperMap iClient、SuperMap iMobile、SuperMap iPortal实现矢量瓦片数据的可视化展示。

1.2.3.技术方案

SuperMap支持将矢量地图生成遵循MapBox MVT规范的矢量瓦片(.mvt),瓦片数据包含要素的几何形状与属性信息,而要素的风格样式由MapBox标准样式文件(style.json)描述。矢量瓦片相比栅格瓦片具有无级缩放,风格修改,数据量相对较小的优势,能更好满足灵活多样的web地图应用。

(1)数据预处理
       SuperMap iDesktop 是 SuperMap 提供的桌面 GIS 工具,是专业的 GIS 数据分析、处理和制图平台,推荐使用 SuperMap iDesktop 进行数据预处理、配图等操作。
       SuperMap iDesktop支持来源于.udb、.smwu以及SDX+引擎数据的接入。为提高切图效率以及瓦片显示效率,可以对数据进行投影转换、数据抽稀、限制比例尺等预处理,详情可参考1.2.4最佳实践。
(2)生成矢量瓦片
       SuperMap地图中的点、线、面、文本等图层都可以切分为矢量瓦片。
       SuperMap支持单任务、多任务切图,主要通过SuperMap iDesktop实现。多任务切图是将地图切图任务拆分成多个子任务,同时开启多个进程,每个进程自动领取并执行切图子任务。

1) 瓦片格式
       将地图中的矢量图层以矢量瓦片的形式进行切分和存储,支持 SVTiles 格式、MVT格式。
2) 投影坐标
       矢量瓦片支持的投影坐标包括:
       地理投影(Web Mercator)
       EPSG:3857
       地理投影(WGS84)
       EPSG:4326
       地理投影 China 2000大地坐标
       地方坐标系
3) 瓦片剖分
       使用SuperMap iDesktop生成矢量瓦片时,系统会自动计算出全球剖分层级比例尺,也会根据地图的实际范围给定合理的切图层级范围。全球剖分层级的首层编号为0,一般来说,支持的最大层级数为21。层级比例尺与地图坐标系有关。
       全球剖分第0层级比例尺的计算
       使用当前地图坐标系,将全球范围数据全幅显示在512 x 512像素大小的瓦片(矢量瓦片的尺寸固定为512 x 512像素)上,作为全球剖分的第0级网格(网格只有一行一列),而此时的比例尺定为第0层级的比例尺。
       全球剖分其他层级比例尺的计算
       由于全球剖分是一个全球范围的四叉树剖分网格体系,第1级网格是在第0级网格基础上平均分为4份,即划分为两行两列;第2级网格是在第1级网格基础上再次均分为4份,以此类推。网格的级别对应矢量瓦片的层级,每个网格内的数据将生成在一张瓦片上,且矢量瓦片尺寸固定,因此,可以推算每一层级比例尺都为前一层级比例尺的1/2。
       在下图中,全球范围地图,地图坐标系为WGS1984,将其全幅显示在512 x 512像素的范围时,比例尺为:1:295829355.454566;按照剖分规则可推算出第1层级比例尺为“1/2 x 第0层级比例尺”即:1:147914677.727283,第2层级比例尺为:1: 73957338.8636414。



       在下图中,基于CGS2000大地坐标系的高斯克吕格3度分带投影(3Degree GK Zone 35 [CGCS2000])的地图,计算它的切图比例尺时,也是从第0层级开始。将全球范围数据使用该投影全幅显示在512 x 512像素的范围(如下图,0层级示意图),此时的比例尺定为第0层级比例尺为1:147666816.868573,按照全球剖分规则,其他层级比例尺如下图所示。


4) 瓦片存储
       矢量缓存生成完毕,在缓存输出路径下,将产生如下所示的文件夹和文件。

       fonts:矢量瓦片使用的字体文件。
       sprites:矢量瓦片中的图标及相关风格内容。
       styles:矢量瓦片风格描述文件。
       tiles:矢量瓦片数据(.mvt文件)。
       在tiles文件夹下,瓦片按照比例尺层级进行分文件夹存储,文件夹名称为全球剖分层级,级数从0开始计数。层级文件夹下的子文件夹命名为全球剖分的列号,其下为矢量瓦片文件,格式为.mvt,文件名称为全球剖分的行号。
       sci文件:矢量瓦片的元信息描述文件,记录了数据的投影、地理范围、层级比例尺等信息。

       生成的矢量瓦片有三种存储类型,即MongoDB、Geopackage及共享文件存储。

       当储存类型为 MongoDB 型时,生成的切片文件,以分布式格式存储在服务器的数据库中,而本地会生成一个索引文件(.sci)。MongoDB 类型的分布式切图服务,只支持5.0版本的缓存。若选择 MongoDB 类型,需设置服务器名称、数据库名称、用户名称等参数。
       当储存类型为GeoPackage时,生成的切片文件,存储在SQLite 数据库中,在指定缓存输出路径\sqlite*.gpkg 文件;且本地会生成一个索引文件(.sci)。
       当存储类型为共享文件时,生成的切片存储在本地文件夹内,能够直接读取。
(3) 发布矢量瓦片
       使用iServer产品发布矢量瓦片。SuperMap iServer 支持将矢量瓦片(MVT)作为数据来源直接发布为地图服务,如 REST 地图服务、WMS 服务、WMTS 服务。

       矢量瓦片将基于MapBox样式文件在SuperMap iClient客户端进行显示,如下图所示为矢量瓦片在客户端使用MapBox GL进行渲染显示的效果。

       对于矢量瓦片而言,当地图的样式风格发生变化时,可以直接更新样式,而无需切片;

(4) 更新矢量瓦片
       在地图中,图层要素有增加/删除/修改,此时就需要更新矢量瓦片。当要素发生变化时,则对已有的瓦片进行更新或追加新的瓦片,如对分布式切片库中已有的切片集进行更新或追加某些比例尺和地图范围的瓦片。

1.2.4.最佳实践

生成矢量瓦片,首先要准备一幅有效的矢量地图,SuperMap地图中的点、线、面、文本图层都支持生成矢量瓦片,并且SuperMap地图要素的符号化、图层设置等绝大多数都能被MapBox样式支持;但是,由于MapBox显示表达的风格与SuperMap不同,所以矢量地图的制作存在一些局限性和注意事项,下文以地图制作的一般流程为主线,详细介绍需要重点关注的制图内容,包括:数据坐标系、数据复杂度、地图符号化等风格设置以及图层可见比例尺范围等,以保证矢量瓦片创建的正确性和高效性。
(1)数据坐标系
       实际制图中,如果数据的坐标系与地图显示坐标系不同,可以开启动态投影实现正确显示,利用这种地图创建矢量瓦片,建议先将数据的坐标系转换为地图显示坐标系,再生成矢量瓦片。原因是:矢量瓦片数据的坐标系将使用地图显示坐标系,如果数据的坐标系与地图显示坐标系不同,在切矢量瓦片时,系统会对数据进行坐标系转换,转为地图显示坐标系;如果地图数据量很大,坐标系转换操作会占用较大的磁盘空间和切图时间,影响切图效率。
(2)降低数据复杂度
       在生成矢量瓦片时,为了提升瓦片生成和显示效率,切图时将对节点密集的对象进行抽稀,减少节点冗余,在大多情况下,这种抽稀在视觉上将不太明显,但也存在特殊情况,例如:小比例尺下河流使用了面状河流,如下图(左图)所示,河流面对象节点密集,形状复杂,经过抽稀后,矢量瓦片结果为下图(右图),对象发生明显变形。因此,建议用户在创建用于切矢量瓦片的地图时,确保不同显示比例尺下,地图对象具有合理的复杂度,这里建议小比例尺下河流采用线对象表达。

(3)符号化地图
       MapBox支持几乎所有的SuperMap点符号、支持常用道路等线型符号、支持常用的面填充符号。用于创建矢量瓦片的地图应避免使用复杂的符号,它们可能在矢量瓦片中无法正确显示。另外,对于MapBox不支持的一些符号,可以通过下表的替代方案替换原有符号。



       MapBox不支持的符号,根据符号类型,矢量瓦片显示为对应的圆点、实线、纯色填充。MapBox样式对于面符号轮廓线的支持与线型符号的完全一致。
       注意事项:
       1)矢量瓦片的显示不支持符号随图缩放。
       2)对于自定义线型,MapBox样式支持包含多个子线的线型符号,但每个子线的类型必须是“短横线(系统线型)”。另外,MapBox样式不支持子线的偏移设置和端头符号设置。

       3)对于自定义填充符号,MapBox样式仅支持包含一个填充子层的填充符号,填充子层可以为图像填充或者符号填充类型。
(4)文字的效果
       MapBox样式对SuperMap地图中文字效果的支持也存在局限性,因此,需要您关注地图中所有文字的风格设置,避免使用MapBox样式不支持的字体效果,具体情况如下:

注意事项:
1)在生成矢量瓦片时,地图中的文本需要设置固定大小,否则,瓦片显示的文字效果与原地图可能存在差异。
2)对于文本图层,矢量瓦片将使用图层中第一个文本对象的风格作为本图层所有文本的风格。
3)文字使用了加粗和斜体效果时,需要保证计算机中有相应字体的粗体和斜体字库,这样生成的矢量瓦片中文字的加粗和斜体效果才有效,例如:文字使用了微软雅黑字体,并设置加粗和斜体,那么您的电脑中要同时具有微软雅黑粗体字库和微软雅黑斜体字库。

(5)制作专题图
       地图中一般会使用专题图来丰富地图表达的内容,如统计信息、分类信息等,但是,MapBox样式只支持SuperMap部分类型的专题图,具体参见下面的表格。如果地图中包含了下面不支持的专题图,生成矢量瓦片时将忽略这些专题图层。


注意事项:
1)MapBox样式不支持点、线、面单值专题图的偏移设置。
2)对于标签专题图所使用的标注字段,目前只支持原生字段值,无法展示SQL的函数计算结果,如 name || ‘_’|| type。
3)对同一点数据集,同时存在点普通图层和基于该图层制作的标签专题图时,MapBox不支持即设置点符号又设置标签背景;否则,点符号会丢失,标签虽然保留,但是,标签背景将偏离标签文字。
4)MapBox样式只支持两种沿线显示方向(沿线的法线方向以及从上到下,从左到右),若地图设置了其他沿线显示方向,矢量瓦片将使用“从上到下,从左到右”的方向放置标签。

(6)限制可见比例尺
       通常为了提升地图显示性能,我们会为图层设置可见比例尺范围,这在矢量瓦片应用中,也可以提高矢量瓦片的绘制效率。矢量瓦片采用全球剖分比例尺创建,所以,可以参照全球剖分比例尺调整矢量地图中各个图层的可见比例尺范围。
(7)瓦片与地图显示差异
       由于MapBox风格显示表达与SuperMap不同,所以在一些地图显示细节方面,二者存在差异。
       1)文字排版
       MapBox对于长标签的换行处理与SuperMap不同。当标签专题图应用了标签换行方面的设置以及多行文本排版的设置,生成矢量瓦片后,瓦片中的显示效果与地图有较大差异。

       2)沿线标注
       MapBox对于沿线标注的处理与SuperMap不同,因此,矢量瓦片显示的沿线标注效果与原始地图存在差异。

       3)避让与压盖设置
       MapBox对地图中要素的避让处理与SuperMap不同,导致两者在标签显示的数量、标签与点对齐方式等方面存在差异。另外,SuperMap地图的压盖设置,在矢量瓦片显示时无效。

1.2.5.友商矢量瓦片常见问题


1.3.三维瓦片(S3M)

1.3.1.应用场景

随着倾斜摄影模型、BIM、点云等新兴三维数据的涌现,如何在Web端良好应用各类体量庞大的三维数据,解决其传输和解析延迟问题,成为一个亟待解决的突出问题。在SuperMap中,在OSGB和3D-Tiles的基础上形成了海量三维数据规范—S3M(Spatial 3D Model),通过这种高效,易扩展,可协作的数据规范,通过WebGL支持硬件加速的可视化渲染技术,兼容多终端(移动,浏览器,桌面)的跨平台特性,最大化的满足用户需求。
       三维瓦片技术的应用场景如在数字城市中可以为用户提供全方位、多角度的城市信息;在数字工厂中,不仅可以全面展示工厂信息,还可以应用于应急反应、安全演练、虚拟培训、安全隐患分析模拟等方面;在管线行业,可以提供基于二维管线数据的三维检查、三维管线自动化生成、地上地下一体化、三维管线可视化管理和三维管线应急辅助决策分析等功能,实现了从管线规划、设计、施工、运维到更新的安全生命周期管理。

1.3.2.产品选型

SuperMap中三维瓦片技术基于SuperMap GIS平台产品,主要通过SuperMap iDesktop 实现三维数据预处理和配图等工作;通过SuperMap iDesktop实现地图切图,生成三维瓦片,支持多任务切图;通过SuperMap iServer实现三维瓦片数据的服务发布;通过SuperMap iDesktop、SuperMap iClient、SuperMap iMobile实现三维瓦片数据的可视化展示。

1.3.3.技术方案


(1)数据预处理
       SuperMap iDesktop除了支持倾斜摄影模型,BIM,精细模型和管线等数据,S3M同时还支持其他各类数据,比如点云、水面以及三维场等多种数据。
       在生成三维瓦片前,先对数据进行坐标转换、降低数据复杂度等预处理,提高切图效率;同时,将数据渲染成符合要求的三维场景,为后续工作做准备。

(2)生成三维瓦片
       SuperMap支持三维瓦片多任务切图,主要通过SuperMap iDesktop实现。多任务切图是将切图任务拆分成多个子任务,同时开启多个进程,每个进程自动领取并执行切图子任务。
       1) 瓦片格式
       将预处理后的场景地图,切分为三维瓦片,以S3M形式存储。
       在空间数据结构上,S3M数据切片通过树状结构来管理和维护。树中有一个根节点和它对应的子节点,同一级的节点之间数据量尽可能相同,在空间关系是上,父节点包含其所有子节点,并通过树的层级关系来组织和管理。如下图,在浏览时,根据相机距离的远近,选择适合的节点切片,达到效果和效率之间的平衡。


       在树状结构中,每一个节点对应一个切片(Tile,后缀为s3m)。每个切片都包括四个部分:
       表述信息,XML格式,文本形式
       几何对象集合,二进制形式
       纹理信息,二进制形式
       单体化信息,二进制形式
       2) 投影坐标
       S3M采用右手坐标系,所有线性距离单位为米,坐标系仅支持WGS84坐标系。如果原始数据为非WGS84坐标系,可以通过SuperMap iDesktop产品,在生成S3M数据时进行投影转换。
       3) 瓦片剖分
       S3M支持多种瓦片的划分策略,如下图的八叉树和四叉树,以及自适应等,同时在对应的端产品中提供对应的图层类来实现(如WebGL中的S3MTilesLayer),不需要用户关心具体的调度方法。



       4) 瓦片存储
       三维瓦片的结果支持保存为本地瓦片,也支持保存到MongoDB数据库。下图为三维瓦片的物理存储结构:Header表述版本信息,4个字节:前三个字节为字符“S”“3”“M”放在文件头数据进行标识;第四个为版本号,目前有4(无单体化信息)和5(有单体化信息)两种情况。

(3)发布三维瓦片
       三维瓦片可以通过SuperMap iServer发布为REST地图服务。
(4)更新三维瓦片
       在地图中,图层对象有增加/删除/修改,此时就需要更新已有的三维瓦片,以保证瓦片的时效性。如对切片库中已有的切片集进行更新或追加某些比例尺和地图范围的瓦片。

SuperMap瓦片技术方案相关推荐

  1. 基于矢量瓦片技术的Web电子海图优化方法

    范梦琪, 宋伟东, 郑人维, 何欢. 2021. 基于矢量瓦片技术的Web电子海图优化方法[J]. 海洋科学, 45(2): 68-75. FAN Meng-qi, SONG Wei-dong, ZH ...

  2. SuperMap制图之瓦片技术

    作者:xinxin   在制作地图的时不仅要考虑其美观性,更要考虑地图的性能,而对应范围广,数据量大的地图,会导致地图加载.渲染.查询和分析时性能很差,特别是在BS端和移动端,严重影响用户的体验.为了 ...

  3. 地图瓦片切片方案汇总

    文章目录 前言 地图切片 主流切片方案 谷歌XYZ TMS QuadTree 百度XYZ 天地图 总结 前言 我们日常使用的地图都是经过web墨卡托(参考这里)形成的平面地图,地图就变为平面的一张地图 ...

  4. 程序员如何讲清楚技术方案

    最近在评审技术方案,和代码review的时候,遇到刚入行的同学们,很多都讲不清楚技术方案. 具体表现是: – 上来不说需求,直接说算法实现.台下一头雾水,根本不知道设计方案是否合理. – 描述完需求后 ...

  5. 毫米波雷达分类和技术方案

    毫米波雷达分类和技术方案 一.什么是毫米波? 毫米波是一项可用于检测物体并提供物体的距离.速度和角度信息的传感技术.这是一项非接触式技术,工作频谱范围为 30GHz 至 300GHz.由于该技术使用较 ...

  6. 高并发下接口幂等性技术方案

    一.背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果. 例如1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果:2. 我们发起一笔付款请求,应该 ...

  7. php ajax mysql 分页查询_基于PHP_MySql_Ajax的分页技术方案

    一.引言 Ajax的全称是AsynchronousJavaScriptAndXML(异步JavaScript和XML),它不是一项新技术,而是很多成熟的技术的集合. 和Applet,Flash相比,A ...

  8. Android APK加壳技术方案----代码实现

    本文章由Jack_Jia编写,转载请注明出处. 文章链接:http://blog.csdn.net/jiazhijun/article/details/8746917 作者:Jack_Jia    邮 ...

  9. 计算机分级存储的特,一种分级存储的方法、系统、设备及介质技术方案

    [技术实现步骤摘要] 一种分级存储的方法.系统.设备及介质 本专利技术涉及存储领域,更具体地,特别是指一种分级存储的方法.系统.计算机设备及可读介质. 技术介绍 分布式对象存储系统是由多台对象存储服务 ...

  10. 系统技术方案 系统构架_构架系统时应注意的事项

    系统技术方案 系统构架 by Ayelet Sachto 通过Ayelet Sachto 架构系统时要记住的6件事 (6 Things to keep in mind when architectin ...

最新文章

  1. Spring MVC中DispatcherServlet理解总结(1)
  2. MySQL数据库右连接查询right join ... on
  3. 4.1ASP.NET Core请求过程「深入浅出ASP.NET Core系列」
  4. 【BATJ面试必会】Java 基础篇
  5. C#数字证书编程总结
  6. 分布式锁原理——redis分布式锁,zookeeper分布式锁
  7. AppStore 上架注意事项及错误修改
  8. P2469 [SDOI2010]星际竞速
  9. servlet中文乱码_10分钟快速掌握Servlet相关基础知识
  10. Java 函数传递对象是引用传递还是值传递?
  11. mpi并行 写同一文件_并行计算调度策略的笔记(001)
  12. android7.x版本编译framework.jar无效解决
  13. clickhouse分布式查询
  14. yolov3 指定gpu_干货|手把手教你在NCS2上部署yolov3-tiny检测模型
  15. java 学籍管理系统课程设计_Java课程设计-学籍信息管理系统
  16. dll和so文件区别与构成
  17. LeetCode 799 香槟塔[模拟+动态规划] HERODING的LeetCode之路
  18. sa-token集成jwt
  19. python输入一个数字n、计算1到n的和_python用户输入一个整数N,计算并输出1到N相加的和,请问这个程序错在哪里了?...
  20. Perma.cc停止学术链接腐烂

热门文章

  1. 愤怒的小鸟 高清完整版下载
  2. Unicast与Multicast
  3. 国内宠物保险“不受宠”背后,这门生意该如何做好?
  4. 拟合系数 / 决定系数 / R方 / R^2的理解
  5. Base64 密码加密解密
  6. HiWork告诉你:拿什么来拯救你,我的时间!
  7. 2018年支付行业回顾
  8. 数据挖掘--数据流挖掘
  9. c++常对象和常成员函数详解
  10. html 出现脚本错误,当前页面脚本发生错误,教您当前页面脚本发生错误的解决方法...