关乎于电子地图

news2025/4/8 19:36:18

文章目录

  • 一、OGC与OpenGIS
  • 二、google map
  • 三、瓦片坐标系统
  • 四、可用地图图源汇总
    • 4.1Google Map
    • 4.2天地图
    • 4.3 必应地图
    • 4.4 高德公开地图
    • 4.5 星图地球
    • 4.6 ArcGIS可用的图源


一、OGC与OpenGIS

OGC(Open Geospatial Consortium)——开放地理信息联盟,是一个非盈利的志愿的国际标准化组织。
OGC 表示开放地理空间信息联盟 (Open Geospatial Consortium-OGC) ,致力于提供地理信息行业软件和数据及服务的标准化工作。

OGC在1994年到2004年期间机构名为Open GIS Consortium, 后因业务需要更名。

OGC是一个非盈利的志愿的国际标准化组织,引领着空间地理信息标准及定位基本服务的发展。在空间数据互操作领域,基于公共接口访问模式的互操作方法是一种基本的操作方法。通过国际标准化组织(ISO/TC211)或技术联盟(如OGC)制定空间数据互操作的接口规范,GIS软件商开发遵循这一接口规范的空间数据的读写函数,可以实现异构空间数据库的互操作。

OGC制定与推进的标准包括 WMS、WMTS、WFS、WCS、CSW、WPS等Web服务规范,及相关的GML、KML和GeoRSS规范。

OpenGIS(Open Geodata Interoperation Specification)——开放的地理数据互操作规范。

1、Web 地图服务(WMS—Web Map Service)

  • WMS是OGC制定的一种在互联网上制作地图的Web服务规范,WMS生产的地图一般以图像格式呈现
  • 用于动态地图服务,每次接到客户请求时才动态生成,适用于数据在不断被更新的地图服务。

2、Web 地图瓦块服务(WMTS—Web Map Tile Service)

  • WMTS是OGC制定的一种发布瓦块地图的Web服务规范。
  • WMTS的地图是服务器预先制作好的地图瓦片。适合于数据相对静态、不再更新或更新频率很低的数据。

参考:
1、OGC的WebGIS相关标准
2、https://docs.ogc.org/is/17-083r2/17-083r2.html
3、https://www.osgeo.cn/gis-booklet/ogc-standard-10.html
4、https://www.ogc.org/standard/wmts/
5、https://docs.ogc.org/is/13-082r2/13-082r2.html
6、https://www.osgeo.cn/gis-booklet/webgis-lxh-3.html


二、google map

google map出现之前,市场上广泛使用OGC的标准WMS服务。客户端将待显示的地理范围作为服务参数请求服务器端,服务器端将地理范围内的空间数据查询出来,并根据预定义的地图样式实时渲染成地图图片,再返回客户端浏览。

基于WMS服务的用法,涉及到地图请求实时性、体量等内容,进而影响服务器性能、网络传输性能、客户端交互性能。

为了解决这些问题,google map提出了 TMS(Tile Map Service)服务,以Pseudo Mercator投影(EPSG:3857)作为基准坐标系,将地图根据不同比例尺分层切片,以切片文件提供服务。随着技术逐渐成熟,TMS 服务成为了 WebGIS 工业标准,在该技术的推动下,OGC(地理信息联盟)也发布了基于 TMS 的 WMTS 服务规范。

关于Pseudo Mercator投影
本质上,以参考椭球的长半轴作为半径正球化,再以长半轴作为半径的圆形周长作为长度范围投影到正方形区域。
投影原点:赤道面和本初子无线的交点,即(lon=0,lat=0)。东经为+,西经为-。
范围:赤道面方向为 ( − R π , R π ) (-R\pi, R\pi) (Rπ,Rπ),子午线方向为 ( − R π , R π ) (-R\pi, R\pi) (Rπ,Rπ)

坐标计算公式参考:
1.https://www.iogp.org/wp-content/uploads/2019/09/373-07-02.pdf page44
2.https://epsg.io/1024-method

根据纬度正算投影Y坐标的公式: Y = f a l s e _ n o r t h + a ln ⁡ ( tan ⁡ ( π 2 + l a t 2 ) ) Y = false\_north + a\ln(\tan(\frac{\pi}{2} + \frac{lat}{2})) Y=false_north+aln(tan(2π+2lat))
因为 f a l s e _ n o r t h = 0 false\_north=0 false_north=0
Y = R π Y=R\pi Y=Rπ时,存在如下关系:
ln ⁡ ( tan ⁡ ( π 2 + l a t 2 ) ) = π \ln(\tan(\frac{\pi}{2} + \frac{lat}{2})) = \pi ln(tan(2π+2lat))=π
= > => =>
tan ⁡ ( π 2 + l a t 2 ) = e π \tan(\frac{\pi}{2} + \frac{lat}{2}) = e^{\pi} tan(2π+2lat)=eπ
l a t = 85.0511287798 lat = 85.0511287798 lat=85.0511287798
可知,子午线方向,Pseudo Mercator投影的纬度范围为:
− 85.0511287798 ≤ l a t ≤ 85.0511287798 -85.0511287798 \le lat \le 85.0511287798 85.0511287798lat85.0511287798
赤道面方向,投影的是整个圆周,所以Pseudo Mercator投影的经度范围为:
− 180 ≤ l o n ≤ 180 -180 \le lon \le 180 180lon180

三、瓦片坐标系统

1、google map 规范
以Pseudo Mercator投影地图的左上角为瓦片坐标系统的起点,赤道面方向为X轴,子午线方向为Y轴,具体如下图所示。
请添加图片描述
Google Map下的瓦片坐标求解思路
投影平面坐标 --> 经纬度坐标 --> 像素坐标 --> 瓦片坐标
投影平面坐标 --> 经纬度坐标:

参考Pseudo Mercator投影的反算公式

经纬度坐标 --> 像素坐标:
s c a l e = 1 < < z o o m scale = 1 << zoom scale=1<<zoom
s i n y = sin ⁡ ( l a t ) siny = \sin(lat) siny=sin(lat)
// The mapping between latitude, longitude and pixels is defined by the web mercator projection.
// Truncating to 0.9999 effectively limits latitude to 89.189:
s i n y = m i n ( m a x ( s i n y , − 0.9999 ) , 0.9999 ) siny = min(max(siny,-0.9999), 0.9999) siny=min(max(siny,0.9999),0.9999)
p i x e l X = T I L E _ S I Z E ∗ ( 0.5 + l n g / 360 ) pixelX = TILE\_SIZE * (0.5 + lng / 360) pixelX=TILE_SIZE(0.5+lng/360)
p i x e l Y = T I L E _ S I Z E ∗ ( 0.5 − l o g e ( 1 + s i n y 1 − s i n y ) ) 4 π ) pixelY = TILE\_SIZE * (0.5 - \frac{log_e(\frac{1+siny}{1-siny}))}{4\pi}) pixelY=TILE_SIZE(0.54πloge(1siny1+siny)))

公式理解:

  • 关于pixelX ,-180<=lng<=180,所以0.5 + lng / 360归算到[0,1]的范围

像素坐标 --> 瓦片坐标系:
w o r l d X = p i x e l X ∗ s c a l e worldX = pixelX * scale worldX=pixelXscale
w o r l d Y = p i x e l X ∗ s c a l e worldY = pixelX * scale worldY=pixelXscale
t i l e X = p i x e l X ∗ s c a l e T I L E _ S I Z E tileX = \frac{pixelX * scale}{TILE\_SIZE} tileX=TILE_SIZEpixelXscale
t i l e Y = p i x e l Y ∗ s c a l e T I L E _ S I Z E tileY = \frac{pixelY * scale}{TILE\_SIZE} tileY=TILE_SIZEpixelYscale

参考:https://code.google.com/apis/maps/documentation/overlays.html#Google_Maps_Coordinates

2、OSM的瓦片服务规范
以Pseudo Mercator投影地图的左上角为瓦片坐标系统的起点,赤道面方向为X轴,子午线方向为Y轴,具体如下图所示。
在这里插入图片描述
数学原理:
t i l e X = ⌊ l o n + 180 360 ∗ 2 z o o m ⌋ tileX = \lfloor \frac{lon + 180}{360} * 2^{zoom} \rfloor tileX=360lon+1802zoom
t i l e Y = ⌊ ( 1 − ln ⁡ ( t a n ( l a t ) + s e c ( l a t ) ) π ) ∗ 2 z o o m − 1 ⌋ tileY = \lfloor (1-\frac{\ln(tan(lat) + sec(lat))}{\pi}) * 2^{zoom-1} \rfloor tileY=⌊(1πln(tan(lat)+sec(lat)))2zoom1

参考:https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Derivation_of_tile_names

3、OGC的WMTS服务规范
以Pseudo Mercator投影地图的左上角为瓦片坐标系统的起点,赤道面方向为X轴,子午线方向为Y轴,具体如下图所示。
在这里插入图片描述

在一个 WMTS 服务中包括以下 3 个操作:

  • GetCapabilities (获取服务的元信息)
  • GetTile (获取切片)
  • GetFeatureInfo (可选,获取点选的要素信息)

基础概念:
TileMatrixSet:切片矩阵集,用来表示一副地图多个比例尺层级切片组合而成的“金字塔”。
TileMatrix:切片矩阵,用来表示某一比例尺层级下的按照瓦片坐标系统定义好的切片集合。
TopLeftCorner:在某一 TileMatrix 中, 表示该比例尺层级的瓦片地图的左上角坐标,可以是投影坐标系或者经纬度坐标系
MatrixWidth和MatrixHeight:在某一 TileMatrix 中,它们分别表示每个瓦片级别在水平和垂直方向上的瓦片数
TileWidth和TileHeight:在某一 TileMatrix 中,它们表示每个瓦片的像素尺寸。在WMTS中,所有级别的瓦片通常都具有相同的尺寸
ScaleDenominator:在某一 TileMatrix 中,他表示比例尺分母。等于每个像素代表的实地距离 / 每个像素代表的屏幕距离
TileMatrixMinX,TileMatrixMinY,TileMatrixMaxX,TileMatrixMaxY:在某一 TileMatrix 中,表示该比例尺层级的瓦片地图的范围

基本数学原理:
Pseudo Mercator投影平面坐标 => 像素坐标:
// 利用长半轴周长计算地面分辨率:
c i r c u m f e r e n c e = π ∗ 2 ∗ a circumference = \pi * 2 * a circumference=π2a
c i r c u m f e r e n c e H a l f = π ∗ 2 ∗ a ∗ 0.5 circumferenceHalf = \pi * 2 * a * 0.5 circumferenceHalf=π2a0.5
g r o u n d _ r e s o l u t i o n = c i r c u m f e r e n c e T I L E _ S I Z E ∗ 2 z o o m ground\_resolution = \frac{circumference}{TILE\_SIZE * 2^{zoom}} ground_resolution=TILE_SIZE2zoomcircumference
// 计算像素坐标
p i x e l X = p r o j X + c i r c u m f e r e n c e H a l f g r o u n d _ r e s o l u t i o n pixelX = \frac{projX + circumferenceHalf}{ground\_resolution} pixelX=ground_resolutionprojX+circumferenceHalf
p i x e l Y = p r o j Y + c i r c u m f e r e n c e H a l f g r o u n d _ r e s o l u t i o n pixelY = \frac{projY + circumferenceHalf}{ground\_resolution} pixelY=ground_resolutionprojY+circumferenceHalf

像素坐标 => 瓦片坐标
t i l e X = ⌊ p i x e l X T I L E _ S I Z E ⌋ tileX = \lfloor \frac{pixelX}{TILE\_SIZE} \rfloor tileX=TILE_SIZEpixelX
t i l e Y = ⌊ p i x e l Y T I L E _ S I Z E ⌋ tileY = \lfloor \frac{pixelY}{TILE\_SIZE} \rfloor tileY=TILE_SIZEpixelY

参考:https://zhuanlan.zhihu.com/p/546459841?utm_id=0

具体实例1:WorldWebMercatorQuad
参考:https://docs.ogc.org/is/13-082r2/13-082r2.html

<TileMatrixSet>
    <ows:Title>Google Maps Compatible for the World</ows:Title>
    <ows:Identifier>WorldWebMercatorQuad</ows:Identifier>
    <ows:SupportedCRS>
       urn:ogc:def:crs:EPSG::3857
    </ows:SupportedCRS>
    <WellKnownScaleSet>
        urn:ogc:def:wkss:OGC:1.0:GoogleMapsCompatible
    </WellKnownScaleSet>
    ...
	<TileMatrix>
	   <ows:Identifier>2</ows:Identifier>
	   <ScaleDenominator>139770566.0071794</ScaleDenominator>
	   <TopLeftCorner>
	      -20037508.3427892 20037508.3427892
	   </TopLeftCorner>
	   <TileWidth>256</TileWidth>
	   <TileHeight>256</TileHeight>
	   <MatrixWidth>4</MatrixWidth>
	   <MatrixHeight>4</MatrixHeight>
	</TileMatrix>
	...
<TileMatrixSet>

具体实例2:
参考:https://docs.ogc.org/is/13-082r2/13-082r2.html

<TileMatrixSet>
  <ows:Title>CRS84 for the World</ows:Title>
  <ows:Identifier>WorldCRS84Quad</ows:Identifier>
  <ows:SupportedCRS>
     urn:ogc:def:crs:OGC:1.3:CRS84
  </ows:SupportedCRS>
  <WellKnownScaleSet>
     urn:ogc:def:wkss:OGC:1.0:GoogleCRS84Quad
  </WellKnownScaleSet>
  <TileMatrix>
     <ows:Identifier>-1</ows:Identifier>
     <ScaleDenominator>559082264.0287178</ScaleDenominator>
     <TopLeftCorner>-180 90</TopLeftCorner>
     <TileWidth>256</TileWidth>
     <TileHeight>256</TileHeight>
     <MatrixWidth>1</MatrixWidth>
     <MatrixHeight>1</MatrixHeight>
  </TileMatrix>
  <TileMatrix>
     <ows:Identifier>0</ows:Identifier>
     <ScaleDenominator>279541132.0143589</ScaleDenominator>
     <TopLeftCorner>-180 90</TopLeftCorner>
     <TileWidth>256</TileWidth>
     <TileHeight>256</TileHeight>
     <MatrixWidth>2</MatrixWidth>
     <MatrixHeight>1</MatrixHeight>
  </TileMatrix>
  <TileMatrix>
     <ows:Identifier>1</ows:Identifier>
     <ScaleDenominator>139770566.0071794</ScaleDenominator>
     <TopLeftCorner>-180 90</TopLeftCorner>
     <TileWidth>256</TileWidth>
     <TileHeight>256</TileHeight>
     <MatrixWidth>4</MatrixWidth>
     <MatrixHeight>2</MatrixHeight>
  </TileMatrix>
  ...
</TileMatrixSet>

4、bing地图规范
以Pseudo Mercator投影地图的左上角为瓦片坐标系统的起点,赤道面方向为X轴,子午线方向为Y轴,具体如下图所示。

bing地图的像素坐标系:
在这里插入图片描述
m a x P i x e l C o o r d X = T I L E _ S I Z E ∗ 2 z o o m − 1 maxPixelCoordX = TILE\_SIZE * 2^{zoom}-1 maxPixelCoordX=TILE_SIZE2zoom1
m a x P i x e l C o o r d Y = T I L E _ S I Z E ∗ 2 z o o m − 1 maxPixelCoordY = TILE\_SIZE * 2^{zoom}-1 maxPixelCoordY=TILE_SIZE2zoom1

bing地图瓦片坐标系
在这里插入图片描述
// 经纬度 => 像素坐标
p i x e l X = l o n + 180 360 ∗ T I L E _ S I Z E ∗ 2 z o o m pixelX = \frac{lon+180}{360} * TILE\_SIZE * 2^{zoom} pixelX=360lon+180TILE_SIZE2zoom
p i x e l Y = ( 0.5 − ln ⁡ 1 + sin ⁡ ( l a t ) 1 − sin ⁡ ( l a t ) 4 ∗ π ) ∗ T I L E _ S I Z E ∗ 2 z o o m pixelY = (0.5 - \frac{\ln{\frac{1+\sin(lat)}{1-\sin(lat)}}}{4*\pi}) * TILE\_SIZE * 2^{zoom} pixelY=(0.54πln1sin(lat)1+sin(lat))TILE_SIZE2zoom
// 像素坐标 => 瓦片坐标
t i l e X = ⌊ p i x e l X / T I L E _ S I Z E ⌋ tileX = \lfloor pixelX / TILE\_SIZE \rfloor tileX=pixelX/TILE_SIZE
t i l e X = ⌊ p i x e l Y / T I L E _ S I Z E ⌋ tileX = \lfloor pixelY / TILE\_SIZE \rfloor tileX=pixelY/TILE_SIZE

bing地图编码坐标:
在这里插入图片描述
bing地图编码计算规则:

1)基本约束

  • 第level级别的编码位数 = level个
  • 下一级别的起始数字是上一级瓦片的编码
  • 按照四叉树规则组织

2)基本规则

  • 转换十进制瓦片坐标为二进制瓦片坐标
  • 以y坐标的二进制值为基准,将x坐标的二进制位隔空插入到y坐标中
  • 再将插入结果的二进制值转为四进制值

计算例子:
t i l e X = 3 10 = 01 1 2 tileX = 3_{10} = 011_2 tileX=310=0112
t i l e Y = 5 10 = 10 1 2 tileY = 5_{10} = 101_2 tileY=510=1012
q u a d k e y = 100111 2 2 = 21 3 4 = “ 213 ” quadkey = 1001112_2= 213_4= “213” quadkey=10011122=2134=“213”

参考:https://learn.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system?redirectedfrom=MSDN

四、可用地图图源汇总

4.1Google Map

图源:gac-geo.googlecnapps.cn
不过目前不能使用了,需要替换域名:gac-geo.googlecnapps.club
hl参数说明:
指定中文注记是否显示中文或英文
hl=nl (中英双语)
hl=zh-CN(中文)

  • 路网注记瓦片:
    https://gac-geo.googlecnapps.club/maps/vt?lyrs=h&x=407&y=211&z=9&hl=zh-CN&gl=CN&src=app&scale=2
    在这里插入图片描述

  • 卫星图无注记:
    https://gac-geo.googlecnapps.club/maps/vt?lyrs=s&x=407&y=211&z=9&hl=zh-CN&gl=CN&src=app&scale=2
    在这里插入图片描述

  • 卫星图带注记:
    https://gac-geo.googlecnapps.club/maps/vt?lyrs=s,h&x=407&y=211&z=9&hl=zh-CN&gl=CN&src=app&scale=2
    或者
    https://gac-geo.googlecnapps.club/maps/vt?lyrs=y&x=407&y=211&z=9&hl=zh-CN&gl=CN&src=app&scale=2
    在这里插入图片描述

  • 普通地图带注记
    https://gac-geo.googlecnapps.club/maps/vt?lyrs=m&x=407&y=211&z=9&hl=zh-CN&gl=CN&src=app&scale=2
    在这里插入图片描述

  • 普通地图带注记
    https://gac-geo.googlecnapps.club/maps/vt?lyrs=r&x=407&y=211&z=9&hl=zh-CN&gl=CN&src=app&scale=2
    在这里插入图片描述

  • 地形融合地图
    https://gac-geo.googlecnapps.club/maps/vt?lyrs=p&x=407&y=211&z=9&hl=zh-CN&gl=CN&src=app&scale=2
    在这里插入图片描述

  • 地形眩晕图
    https://gac-geo.googlecnapps.club/maps/vt?lyrs=t&x=407&y=211&z=9&hl=zh-CN&gl=CN&src=app&scale=2
    在这里插入图片描述

参考:
http://bbs.3s001.com/thread-377297-1-1.html
https://blog.csdn.net/GISuuser/article/details/136896612

4.2天地图

经纬度参考框架下的影像url
http://t0.tianditu.gov.cn/img_c/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=c&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=您的密钥

其它天地图图源参考:http://lbs.tianditu.gov.cn/server/MapService.html

4.3 必应地图

影像URL
http://ecn.t3.tiles.virtualearth.net/tiles/a{q}.jpeg?g=1

4.4 高德公开地图

影像URL
https://webst01.is.autonavi.com/appmaptile?x=2&y=2&z=2&style=6

4.5 星图地球

影像URL
https://tiles1.geovisearth.com/base/v1/img/{z}/{x}/{y}?format=webp&tmsIds=w&token=<用户的token>

4.6 ArcGIS可用的图源

https://wayback.maptiles.arcgis.com/arcgis/rest/services/world_imagery/wmts/1.0.0/default028mm/mapserver

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

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

相关文章

HCIE-Datacom题库_01_防火墙【18道题】

一、单选题 1.相比较于路由器、交接机&#xff0c;防火墙转发独有的模块为? 交换网板 MPU LPU SPU 解析&#xff1a; SFU&#xff08;Switch Fabric Unit&#xff09;&#xff1a;交换网板&#xff0c;负责整个系统的数据平面数据平面提供高速无阻塞数据通道&#xff0…

Linux系统:配置Apache支持CGI(Ubuntu)

配置Apache支持CGI 根据以下步骤配置&#xff0c;实现Apache支持CGI 安装Apache&#xff1a; 可参照文章&#xff1a; Ubuntu安装Apache教程。执行以下命令&#xff0c;修改Apache2配置文件000-default.conf&#xff1a; sudo vim /etc/apache2/sites-enabled/000-default.con…

【深度学习量化交易2】财务自由第一步,三个多月的尝试,找到了最合适我的量化交易路径

在上一篇文章中&#xff0c;我讲到了尝试开展量化交易的一些初步的想法&#xff1a;Mr.看海&#xff1a;【深度学习量化交易1】一个金融小白尝试量化交易的设想、畅享和遐想 一晃三个多月时间过去了&#xff0c;十一前后股市突然爆火&#xff0c;行情也像过山车一样&#xff0…

面对服务器掉包的时刻困扰,如何更好的解决

在数字化时代&#xff0c;服务器的稳定运行是企业业务连续性的基石。然而&#xff0c;服务器“掉包”现象&#xff0c;即数据包在传输过程中丢失或未能正确到达目的地的情况&#xff0c;却时常成为IT运维人员头疼的问题。它不仅影响用户体验&#xff0c;还可能导致数据不一致、…

spring boot热部署

使用热部署解决了每次都需要重新启动的问题&#xff0c;但不过热部署的在对于改动比较小时速度可能快一些&#xff0c;改动大的话尽量停止 1.使用热部署之前需要在pom.xml文件中导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifa…

基于SpringBoot+vue学生成绩管理系统

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的学生成绩管理系统&#xff0c;前后端分离。 开发语言&#xff1a;Java数据库&#xff1a;MySQL…

网关Gateway作用介绍和快速入门

目前架构问题分析 这里有很多微服务&#xff0c;每个微服务都需要晚上访问数据库去完成各自的业务&#xff0c;并且需要在nacos进行注册和管理&#xff0c;每一个微服务之间需要相互调用的时候&#xff0c;可以用Feign进行调用&#xff0c;当外部需要访问的时候&#xff0c;就直…

Linux操作系统——外存的管理(实验报告)

实验 Linux系统外存管理 一、实验目的 熟练Linux系统外存管理的方法与命令。 二、实验环境 硬件&#xff1a;PC电脑一台&#xff0c;网络正常。 配置&#xff1a;win10系统&#xff0c;内存大于8G 硬盘500G及以上。 软件&#xff1a;VMware、Ubuntu16.04。 三、实验内容 …

Type-c取点诱骗方案

如今随着这几年的USB-C PD适配器的普及&#xff0c;消费者手上的PD协议适配器越来越普遍&#xff0c;如何让微软surface 充电器线支持使用PD适配器快充&#xff1f;加入一颗受电端PD协议取电芯片——LDR6328能够完美的兼容市面上的PD适配器&#xff0c;支持不同的电压输出。 1…

javaweb以html方式集成富文本编辑器TinyMce

前言&#xff1a; 单一的批量图片上传按钮&#xff0c;禁用tinymce编辑器&#xff0c;但是还可以操作图片编辑&#xff1b; 多元化格式的富文本编辑要求&#xff1b; 采用tinymce实现。 附&#xff1a; tinymce中文手册网站&#xff1a; http://tinymce.ax-z.cn/download-all.…

Jmeter监控服务器性能

目录 ServerAgent 安装 打开Jmeter ServerAgent 在Jmeter上监控服务器的性能比如CPU&#xff0c;内存等我们需要用到ServerAgent&#xff0c;这里可以下载我分享 ServerAgent-2.2.3.zip 链接: https://pan.baidu.com/s/1oZKsJGnrZx3iyt15DP1IYA?pwdedhs 提取码: edhs 安装…

考研C语言程序设计_编程题相关(持续更新)

目录 零、说明一、程序设计经典编程题(C语言实现)T1 求1~100的奇数T2 求n!T3 求1!2!3!...10!T4 在一个有序数组中查找具体的某个数字n(二分查找)T5 编写代码&#xff0c;演示多个字符从两端移动&#xff0c;向中间汇聚T6 模拟用户登录(三次机会)T7 输入三个数 并从大到小输出T8…

实战篇:(四)Vue2 + Three.js 创建可交互的360度全景视图,可控制旋转、缩放完整代码

Vue2 Three.js 创建可交互的360度全景视图&#xff0c;可控制旋转、缩放 引言 在现代网页开发中&#xff0c;三维图形技术已经成为提升用户体验的重要工具。本文将展示如何使用 Three.js 创建一个简单的可交互360度全景视图。通过这一项目&#xff0c;你将能够学习到基本的场…

使用 KVM 在 Xubuntu 上创建 Windows 10 虚拟机

目录 前言说明注意准备 iso官网思博主(嘻嘻)拖动到虚拟机里面启动 virt-manager创建虚拟机选择本地安装介质选择 iso配置 内存 和 CPU选择 创建的虚拟机 保存的位置启动虚拟机看到熟悉的 Win10界面点击现在安装点击我没有产品密钥选择 Win10 专业工作站版勾选接受许可条款选择自…

grafana 配置prometheus

安装prometheus 【linux】麒麟v10安装prometheus监控&#xff08;ARM架构&#xff09;-CSDN博客 登录grafana 访问地址&#xff1a;http://ip:port/login 可以进行 Grafana 相关设置&#xff08;默认账号密码均为 admin&#xff09;。 输入账户密码 添加 Prometheus 数据源…

文件上传漏洞-绕过js验证

1.漏洞原理&#xff1a; Web应用系统虽然对用户上传的文件进行了校验&#xff0c;但是校验是通过前端javascript代码完成的。由于恶意用户可以对前端javascript进行修改或者是通过抓包软件篡改上传的文件&#xff0c;就会导致基于js的校验很容易被绕过。 2.判断页面是否存在前…

SpringBoot下的智能健康推荐引擎

3系统分析 3.1可行性分析 通过对本基于智能推荐的卫生健康系统实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于智能推荐的卫生健康系统采用SSM框架&#…

穷举vs暴搜vs深搜vs回溯vs剪枝(一)

文章目录 全排列子集找出所有子集的异或总和再求和全排列 II电话号码的字母组合 全排列 题目&#xff1a;全排列 思路 通过深度优先搜索的方式&#xff0c;不断枚举每个数在当前位置的可能性&#xff0c;然后回溯到上一个状态&#xff0c;直到枚举完所有可能性得到正确的结果 r…

FastApi SQLAlchemy SQLite

FastApi fastapi是一个用于构建API 的现代、快速&#xff08;高性能&#xff09;的web框架&#xff0c;它是建立在Starlette和Pydantic基础上的。 Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库&#xff0c;Starlette是一种轻量级的ASGI框架/工具包&…

哪些因素会影响 FMEA 实施的效果?

在探讨哪些因素会影响FMEA&#xff08;潜在失效模式及后果分析&#xff09;实施效果的问题时&#xff0c;我们不得不深入剖析FMEA的核心理念、实施流程及其在企业质量管理中的应用实践。FMEA作为一种系统性的预防性工具&#xff0c;旨在识别产品或过程中潜在的失效模式及其影响…