Cesium入门之六:Cesium加载影像图层(ArcGIS、Bing、Mapbox、高德地图、腾讯地图、天地图等各类影像图)

Cesium加载影像图层

  • 一、ImageryLayer类
    • 常用属性
    • 常用方法
  • 二、ImageryLayerCollection类
    • 常用属性
    • 常用方法
  • 三、ImageryProvider类
    • 常用属性
    • 常用方法
  • 四、ImageryProvider子类
    • 1. ArcGisMapServerImageryProvider
      • 加载ArcGIS地图服务
    • 2. BingMapsImageryProvider
      • 加载BingMap地图服务
    • 3. GoogleEarthEnterpriseImageryProvider
    • 4. GridImageryProvider
    • 5. IonImageryProvider
      • 加载Cesium ion地图服务
    • 6. MapboxImageryProvider
      • 加载Mapbox地图服务
    • 7. SingleTileImageryProvider
    • 8. TileCoordinatesImageryProvider
    • 9. UrlTemplateImageryProvider
      • 加载高德地图
      • 加载腾讯地图
      • 加载天地图
    • 10. WebMapServiceImageryProvider
    • 11. WebMapTileServiceImageryProvider
      • 加载ArcGIS地图服务
      • 加载天地图
  • 五、加载影像数据的方法
  • 六、加载ArcGIS、Bing、Mapbox、高德地图、腾讯地图、天地图等各类影像图层的核心代码

在Cesium中,加载影像图层主要通过ImageryLayer、ImageryProvider和ImageryLayerCollection三个类来实现;首先我们先来认识下这三个类

一、ImageryLayer类

在Cesium中,使用ImageryLayer对象来表示一个影像图层。ImageryLayer是一个包含一个或多个瓦片的图层,它可以用来控制地图影像的显示、叠加和透明度等属性。可以通过将其添加到ImageryLayerCollection中来实现在场景中显示。
可以使用以下代码创建一个新的ImageryLayer对象:

var imageryLayer = new Cesium.ImageryLayer(imageryProvider, options);

常用属性

  • imageryProvider:一个ImageryProvider对象,用于提供地图影像数据
  • alpha:影像图层的透明度(0-1),默认值为1
  • brightness:影像图层的亮度调整值(-1到1之间),默认值为0
  • contrast:影像图层的对比度调整值(-1到1之间),默认值为0
  • hue:影像图层的色调调整值(-1到1之间),默认值为0
  • saturation:影像图层的饱和度调整值(-1到1之间),默认值为0
  • gamma:影像图层的伽马调整值(>=1),默认值为1
  • show:布尔类型,表示该图层是否可见,默认值为true
  • minimumTerrainLevel:数字类型,表示在地形高程数据缺失时,该图层的最小可见级别。默认值为0
  • maximumTerrainLevel:数字类型,表示在地形高程数据缺失时,该图层的最大可见级别。默认值为Infinity
  • rectangle:一个Rectangle对象,表示该图层的可视范围
  • zIndex:数字类型,表示该图层在图层堆叠顺序中的位置,数值越大表示越靠前

常用方法

  • destroy():销毁该图层,释放资源。
    该方法会销毁该图层对象,释放其占用的资源。当不再需要该图层时,应该调用它来避免内存泄漏。
var imageryLayer = new Cesium.ImageryLayer(imageryProvider);
// ...
imageryLayer.destroy();
  • isDestroyed():返回一个布尔值,表示该图层是否已销毁;如果已经销毁,则返回true;否则返回false
var imageryLayer = new Cesium.ImageryLayer(imageryProvider);
// ...
if (imageryLayer.isDestroyed()) {
    console.log('图层已销毁');
}

二、ImageryLayerCollection类

ImageryLayerCollection类是Cesium中的一个类,用于存储和管理多个ImageryLayer对象。每个ImageryLayer对象表示一个图像图层,可以包含单张图片或图像切片集合

常用属性

  • length:返回集合中ImageryLayer对象的数量
  • layerAdded:当图像图层添加到该集合时发生的事件
  • layerMoved:当图像图层在该集合内移动时发生的事件
  • layerRemoved:当图像图层从该集合中删除时发生的事件

常用方法

  • add(layer, index):将给定的ImageryLayer对象添加到集合中的指定位置。如果省略索引,则将该图像图层添加到末尾
  • remove(layer):从集合中删除给定的ImageryLayer对象
  • removeAll():从集合中删除所有ImageryLayer对象
  • raise(layer):将给定的ImageryLayer对象移动到集合中的下一个位置
  • lower(layer):将给定的ImageryLayer对象移动到集合中的上一个位置
  • raiseToTop(layer):将给定的ImageryLayer对象移动到集合的顶部
  • lowerToBottom(layer):将给定的ImageryLayer对象移动到集合的底部
  • addImageryProvider(imageryProvider, index):用于将给定的ImageryProvider对象创建的图像图层添加到集合中的指定位置。如果省略索引,则将该图像图层添加到末尾
const esri = await Cesium.ArcGisMapServerImageryProvider.fromUrl(
      'https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
  )
const index = 0
imageLayers.addImageryProvider(esri,index) 

首先创建了一个ArcGisMapServerImageryProvider,然后使用它的fromUrl方法创建了一个图像图层并将其添加到imateryLayers的末尾,同时将返回的imageryLayer对象存储在变量esri中。

然后,通过访问viewer.imageryLayers.length获取imageryLayers的长度,并将imageryProvider创建的图像图层插入到开头,即索引为0的位置。

如果省略index参数,则addImageryProvider方法将imageryProvider创建的图像图层添加到imageryLayers的末尾。否则,它将插入到指定的索引处。

三、ImageryProvider类

ImageryProvider是Cesium中提供影像数据的抽象类,定义了一些基本方法和属性,用于获取、处理和显示影像数据。在实际应用中,通常需要根据不同的影像数据源选择不同的ImageryProvider子类,如WebMapServiceImageryProvider、WebMapTileServiceImageryProvider、BingMapsImageryProvider等。

常用属性

  • credit: 影像数据提供者的版权信息。类型为Credit对象。
  • errorEvent: 加载影像数据时出现错误时触发的事件对象。类型为Event对象,通过监听该事件可以获得加载失败的详情。
  • hasAlphaChannel: 影像数据是否包含透明通道。类型为Boolean。
  • maximumLevel: 影像数据提供者所提供的最大影像级别。类型为Number。
  • minimumLevel: 影像数据提供者所提供的最小影像级别。类型为Number。
  • proxy: 代理服务器地址,用于跨域请求影像数据。类型为Proxy对象或字符串。
  • ready: 影像数据提供者是否已经加载完成并准备好使用。类型为Boolean。
  • rectangle: 影像数据所涵盖的矩形区域范围。类型为Rectangle对象。
  • tileWidth: 影像切片的宽度,单位为像素。类型为Number,默认为256。
  • tileHeight: 影像切片的高度,单位为像素。类型为Number,默认为256。
  • tilingScheme: 影像数据切片方案,用于计算影像切片的行列号以及经纬度范围。类型为TilingScheme对象,默认为WebMercatorTilingScheme。

常用方法

  • getTileCredits(x, y, level): 获取指定位置、级别的影像数据切片的版权信息,该方法返回一个Credit数组。通常在地图上显示影像切片时需要显示版权信息,可以使用该方法获取每个影像切片的版权信息。
  • pickFeatures(x, y, level, longitude, latitude): 在指定位置、级别、经纬度处查询影像数据源中的要素信息,并返回一个Promise对象。该方法通常用于处理用户交互操作,如点击或悬停显示要素信息。
  • requestImage(x, y, level): 请求指定位置、级别的影像数据,并返回一个Promise对象。该方法通常由ImageryLayer调用,开发者无需手动调用。

四、ImageryProvider子类

1. ArcGisMapServerImageryProvider

用于加载ArcGIS Server Map Service提供的影像数据;支持多种格式和地图投影方式;
使用new Cesium.ArcGisMapServerImageryProvider创建一个imageryProvider ,并加载ArcGIS服务

加载ArcGIS地图服务

在Cesium1.104之前的版本中加载ArcGIS服务的方式如下

const esri = new Cesium.ArcGisMapServerImageryProvider({
      url: 'https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
})
imageLayers.addImageryProvider(esri)

如果是在Cesium1.104以后的版本,已经废弃了这种调用方式,如果用上面的方法调用,控制台会出现警告提示
options.url was deprecated in CesiumJS 1.104. It will be in CesiumJS 1.107. Use ArcGisMapServerImageryProvider.fromUrl instead.
使用以下方式替代上面影像地图的加载方法

const esri = await Cesium.ArcGisMapServerImageryProvider.fromUrl(
     'https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
)
imageLayers.addImageryProvider(esri)

2. BingMapsImageryProvider

用于加载Bing Maps提供的影像数据;支持多种分辨率、样式和地区;需要提供有效的Bing Maps API key才能使用。
Bing Maps API key可以去Bing Maps官网申请,官网地址:https://www.bingmapsportal.com/

加载BingMap地图服务

加载BingMap使用静态方法BingMapsImageryProvider.fromUrl实现

  const bing = await Cesium.BingMapsImageryProvider.fromUrl(
      "https://dev.virtualearth.net", {
        key: "your-key",
        mapStyle: Cesium.BingMapsStyle.AERIAL//可选参数,指定地图样式
  })
  imageLayers.addImageryProvider(bing)

3. GoogleEarthEnterpriseImageryProvider

用于加载Google Earth Enterprise Server提供的影像数据;支持多种格式和分辨率;可以通过设置单独的token属性进行身份验证。

4. GridImageryProvider

用于加载以栅格方式存储的影像数据;支持多种格式和地图投影方式;需要提供包含切片信息的JSON文件路径或对象。

var gridImagery = new Cesium.GridImageryProvider({
      color: Cesium.Color.fromCssColorString('#ff00ff'), // 可选参数,指定网格线颜色
      glowFactor: 0.2, // 可选参数,指定网格线辉光系数
});
imageLayers.addImageryProvider(gridImagery)

5. IonImageryProvider

用于加载Cesium ion服务提供的影像数据;支持多种格式和规格;需要提供有效的ion access token才能使用。

加载Cesium ion地图服务

const Ion = await Cesium.IonImageryProvider.fromAssetId(3812);
imageLayers.addImageryProvider(Ion)

6. MapboxImageryProvider

用于加载Mapbox提供的影像数据;支持多种风格、密度和地区;需要提供有效的Mapbox access token才能使用。
Mapbox token需要到Mapbox官网申请

加载Mapbox地图服务

const mapbox = new Cesium.MapboxImageryProvider({
    mapId: 'mapbox.mapbox-terrain-v2',
    accessToken: 'thisIsMyAccessToken'
});
imageLayers.addImageryProvider(mapbox)

7. SingleTileImageryProvider

用于加载单张静态影像数据;支持多种格式和投影方式;需要提供包含影像数据URL的字符串或路径。
SingleTileImageryProvider一般用于加载离线数据或对影像数据要求不高的场景

const provider = await SingleTileImageryProvider.fromUrl("https://yoururl.com/image.png")
imageLayers.addImageryProvider(provider)

8. TileCoordinatesImageryProvider

用于加载本地栅格切片数据;支持多种格式、规格和级别范围;需要提供包含切片路径和后缀的URL模板。它可以用于在地球表面上绘制出每个瓦片的行列号。这对于调试、测试和开发非常有用

var tileCoordinates = new Cesium.TileCoordinatesImageryProvider()
imageLayers.addImageryProvider(tileCoordinates)

上面代码创建一个TileCoordinatesImageryProvider,然后将其添加到场景中的imageryLayers中。该图层将在地球表面上绘制出每个瓦片的行列号。
注意:TileCoordinatesImageryProvider不会加载真实的影像数据,而是在每个瓦片上绘制其行列号。因此,在使用TileCoordinatesImageryProvider时,地球表面将不会显示任何卫星图像或地形数据。

9. UrlTemplateImageryProvider

用于加载基于HTTP/HTTPS协议的网络栅格切片数据;支持多种格式、规格和级别范围;需要提供包含切片路径和后缀的URL模板。UrlTemplateImageryProvider指定Url的format模板,方便用户实现自己的Provider,国内的高德,腾讯等影响服务都可以使用UrlTemplateImageryProvider加载

加载高德地图

var gaodeImageryProvider = new Cesium.UrlTemplateImageryProvider({
      url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
      maximumLevel: 18,
      minimumLevel: 1,
      credit: 'Amap'
})
imageLayers.addImageryProvider(gaodeImageryProvider)

上面代码创建了一个UrlTemplateImageryProvider对象,并设置其中的url属性,将其指定为从高德地图服务器加载瓦片的URL模板。对于高德地图,需要使用具有三个占位符({x}、{y}和{z})的URL模板。此外,还可以设置瓦片的最大和最小级别。

加载腾讯地图

var tencentImageryProvider = new Cesium.UrlTemplateImageryProvider({ 
    url: "https://p2.map.gtimg.com/sateTiles/{z}/{sx}/{sy}/{x}_{reverseY}.jpg?version=400", 
    customTags: { 
      sx: function(imageryProvider, x, y, level) { return x >> 4; }, 
      sy: function(imageryProvider, x, y, level) { return ((1 << level) - y) >> 4 }
    }
  });
imageLayers.addImageryProvider(tencentImageryProvider);

加载天地图

 var tdtImageryProvider = new Cesium.UrlTemplateImageryProvider({
      url: 'http://{s}.tianditu.com/DataServer?T=img_w&X={x}&Y={y}&L={z}&tk=您的密钥',
      subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
      maximumLevel: 18,
      minimumLevel: 1,
      credit: 'Tianditu'
  });
  imageLayers.addImageryProvider(tdtImageryProvider);

这里创建了一个UrlTemplateImageryProvider对象,并设置其中的url属性,将其指定为从天地图服务器加载瓦片的URL模板。其中{s}是天地图的多个子域之一,{x}、{y}和{z}分别表示瓦片的行列号和级别。tk为天地图开放平台申请的密钥。

这里需要设置subdomains数组以用于轮询不同的服务器。此外,还可以设置瓦片的最大和最小级别。

10. WebMapServiceImageryProvider

用于加载Web Map Service提供的影像数据;支持多种格式和地图投影方式;可以通过设置单独的token属性进行身份验证。

11. WebMapTileServiceImageryProvider

用于加载Web Map Tile Service提供的影像数据;支持多种格式和规格;可以通过设置单独的token属性进行身份验证。

加载ArcGIS地图服务

var imageryProvider = new Cesium.WebMapTileServiceImageryProvider({
    url : 'https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS',
    layer: 'World_Imagery',
    style: 'default',
    format: 'image/jpeg',
    tileMatrixSetID: 'GoogleMapsCompatible',
    maximumLevel: 19,
    credit: new Cesium.Credit('© Esri', 'https://www.esri.com/')
});

imageLayers.addImageryProvider(imageryProvider);

加载天地图

var tdtWebMapTile = new Cesium.WebMapTileServiceImageryProvider({
    url : 'http://t0.tianditu.gov.cn/img_w/wmts?tk=您的密钥',
    layer: 'img',
    style: 'default',
    format: 'tiles',
    tileMatrixSetID: 'w',
    maximumLevel: 18,
    credit: new Cesium.Credit('© Tianditu', 'http://www.tianditu.gov.cn/')
});
imageLayers.addImageryProvider(tdtWebMapTile);

五、加载影像数据的方法

加载影像数据通过下面三步来完成

  1. 创建ImageryLayer对象

在Cesium中,使用ImageryLayer对象来表示一个影像图层。ImageryLayer是一个包含一个或多个瓦片的图层,可以通过将其添加到ImageryLayerCollection中来实现在场景中显示
可以使用以下代码创建一个新的ImageryLayer对象:

var imageryLayer = new Cesium.ImageryLayer(imageryProvider, options);

其中,imageryProvider参数指定了影像数据的提供者,而options参数则可以用来设置影像图层的各种属性,例如不透明度、最大可见高度等

  1. 创建ImageryProvider对象

在Cesium中,使用ImageryProvider对象来表示一个影像数据的提供者。ImageryProvider是一个抽象类,需要根据具体的数据来源使用其子类来实现

Cesium内置了一些常见数据源的子类,如SingleTileImageryProvider、UrlTemplateImageryProvider、WebMapServiceImageryProvider等,也可以自定义子类来加载其他数据源的影像数据

可以使用以下代码创建一个新的ImageryProvider对象:

var imageryProvider = new Cesium.UrlTemplateImageryProvider({
    url: 'http://example.com/{z}/{x}/{y}.png'
});

其中,url参数指定了影像数据的URL模板,{z}{x}{y}分别代表瓦片的级别、行号和列号,Cesium会将其替换为实际的数值来获取对应的瓦片数据。

  1. 将ImageryLayer添加到场景中

在创建好ImageryLayer对象后,可以通过以下代码将其添加到场景中:

viewer.imageryLayers.add(imageryLayer);

其中,viewer是Cesium的主要控制器对象

六、加载ArcGIS、Bing、Mapbox、高德地图、腾讯地图、天地图等各类影像图层的核心代码

const imageLayers = viewer.imageryLayers 
  console.log(imageLayers);
  imageLayers.remove(imageLayers.get(0)) //清楚Cesium默认加载的影像地图数据(默认是加载的bing地图)
// ArcGIS地图 1.104之前版本的调用方法
// const esri = new Cesium.ArcGisMapServerImageryProvider({
// url: //'https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
// })
const esri = await Cesium.ArcGisMapServerImageryProvider.fromUrl(      'https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer',
)
imageLayers.addImageryProvider(esri) 
// Bing地图
const bing = await Cesium.BingMapsImageryProvider.fromUrl(
  "https://dev.virtualearth.net", {
  key: "YOUR KEY",
  mapStyle: Cesium.BingMapsStyle.AERIAL//可选参数,指定地图样式
})
imageLayers.addImageryProvider(bing) 
const Ion = await Cesium.IonImageryProvider.fromAssetId(3812);
imageLayers.addImageryProvider(Ion)
var gridImagery = new Cesium.GridImageryProvider({
   color: Cesium.Color.fromCssColorString('#ff0000'), // 可选参数,指定网格线颜色
   glowFactor: 0.2, // 可选参数,指定网格线辉光系数
});
imageLayers.addImageryProvider(gridImagery)
const mapbox = new Cesium.MapboxImageryProvider({
  mapId: 'mapbox.mapbox-terrain-v2',
  accessToken: 'YOUR KEY'
});
imageLayers.addImageryProvider(mapbox)
var tileCoordinates = new Cesium.TileCoordinatesImageryProvider()
imageLayers.addImageryProvider(tileCoordinates)
var gaodeImageryProvider = new Cesium.UrlTemplateImageryProvider({
  url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
  maximumLevel: 18,
  minimumLevel: 1,
  credit: 'Amap'
}); 
imageLayers.addImageryProvider(gaodeImageryProvider);
var tencentImageryProvider = new Cesium.UrlTemplateImageryProvider({
// 影像图 
  url: "https://p2.map.gtimg.com/sateTiles/{z}/{sx}/{sy}/{x}_{reverseY}.jpg?version=400", 
  customTags: { 
      sx: function(imageryProvider, x, y, level) { return x >> 4; }, 
      sy: function(imageryProvider, x, y, level) { return ((1 << level) - y) >> 4 }
    }
});
imageLayers.addImageryProvider(tencentImageryProvider);
var tdtImageryProvider = new Cesium.UrlTemplateImageryProvider({
   url: 'http://{s}.tianditu.com/DataServer?T=img_w&X={x}&Y={y}&L={z}&tk=YOUR KEY',
   subdomains: ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'],
   maximumLevel: 18,
   minimumLevel: 1,
   credit: 'Tianditu'
});
imageLayers.addImageryProvider(tdtImageryProvider);
var arcGIsWebMapTile = new Cesium.WebMapTileServiceImageryProvider({
    url : 'https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS',
    layer: 'World_Imagery',
    style: 'default',
    format: 'image/jpeg',
    tileMatrixSetID: 'GoogleMapsCompatible',
    maximumLevel: 19,
    credit: new Cesium.Credit('© Esri', 'https://www.esri.com/')
});
imageLayers.addImageryProvider(arcGIsWebMapTile);
const osm = new Cesium.OpenStreetMapImageryProvider({
    url : 'https://a.tile.openstreetmap.org/'
});
imageLayers.addImageryProvider(osm)
var tdtWebMapTile = new Cesium.WebMapTileServiceImageryProvider({
    url : 'http://t0.tianditu.gov.cn/img_w/wmts?tk=YOUR KEY',
    layer: 'img',
    style: 'default',
    format: 'tiles',
    tileMatrixSetID: 'w',
    maximumLevel: 18,
    credit: new Cesium.Credit('© Tianditu', 'http://www.tianditu.gov.cn/')
});
var index = 0;
imageLayers.addImageryProvider(tdtWebMapTile,index);

刷新浏览器,可以查看各地图的最终效果
ArcGISMap在这里插入图片描述
BingMap
在这里插入图片描述
Mapbox
在这里插入图片描述
高德地图
在这里插入图片描述
腾讯地图
在这里插入图片描述
天地图
在这里插入图片描述
OK,这一节就到这里了,有问题评论区讨论,喜欢的小伙伴点赞关注收藏哦!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java websocket 使用

简介 WebSocket 是一种基于 TCP 协议的全双工通信协议&#xff0c;可以在浏览器和服务器之间建立实时、双向的数据通信。在 Java 中&#xff0c;我们可以使用 Java API for WebSocket&#xff08;JSR 356&#xff09;来实现 WebSocket。 WebSocket 的作用是在 Web 应用程序中…

springboot+jsp+javaweb学生信息管理系统 05hs

springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是目前最火热的java开发框架 &#xff08;1&#xff09;管理员模块&#xff1a;系统中的核心用户是管…

ChatGPT国内免费使用的方法有哪些?

目录 一、ChatGpt是什么&#xff1f; 二、ChatGPT国内免费使用的方法&#xff1a; 第一点&#xff1a;电脑端 第二点&#xff1a;手机端 三、结语&#xff1a; 一、ChatGpt是什么&#xff1f; ChatGPt是美国OpenAI [1] 研发的聊天机器人程序 。更是人工智能技术驱动的自然语…

【MySQL】浅谈事务

哈喽&#xff0c;大家好~我是你们的老朋友&#xff1a;保护小周ღ 谈起 “事务”&#xff0c;可能大家都会在心中出现一个大大的 &#xff1f;&#xff0c;博主的理解——事务就是解决 MySql数据库在应对多线程环境下针对同一存储空间的数据修改引起的数据安全问题的一种机制…

详解二叉树

&#x1f308;目录 一、树形结构​ &#x1f333;1.1 概念1.2 其他概念1.3 树的表示形式 二、二叉树✨2.1 概念2.2 两种特殊二叉树2.3 性质2.4 二叉树存储 三、二叉树的基本操作&#x1f64c;3.1 前置说明3.2 二叉树的遍历3.3 二叉树的基本操作 四、二叉树的OJ✍️ 一、树形结构…

康耐视智能相机insight主从触发以及康耐视insight视觉系统之间数据特有交互方式

1、一个相机设置为主系统,指定自己的名称,下方可以指定发给从系统的数据,触发方式不要设置 成网络 2、另外一个相机触发方式设置成网络,然后下方指定主系统的名称 3、主系统每触发一次,就会带动从系统触发,同时指定的数据会发送到从系 统,从系统使用函数getstring获取…

爱奇艺2020校招Java方向笔试题(第一场)

1.计算下列程序的时间复杂度&#xff08;&#xff09; for (i1;i<n;i)for(j1;j<m;j){a1,a2,a3,a4};A.O(n) B.O(mn) C.O(m) D.O(1) 答案:B 2.求递归方程T(n)4T(n/2)n 的解 ( ) A.O(n) B.O(n^2) C.O(n^3) D.O(logn) 答案:B 用Mater公式计算 3.下列关于动态规划算法说法错…

【rust】| 06——语言特性 | 所有权

系列文章目录 【rust】| 00——开发环境搭建 【rust】| 01——编译并运行第一个rust程序 【rust】| 02——语法基础 | 变量(不可变?)和常量 【rust】| 03——语法基础 | 数据类型 【rust】| 04——语法基础 | 函数 【rust】| 05——语法基础 | 流程控制 【rust】| 06——语言特…

国货大佬“卡脖子”后王者风范不减?小米卷出光学拍摄“天花板”?| 手机行业社媒心智品牌榜出炉

Social Power 核心解读 1、智能手机“乍暖还寒”&#xff0c;龙头品牌仍稳占消费者心智 比拼屏幕、赶超系统、迭代形态、拓展概念&#xff1f;眼花缭乱过后&#xff0c;产品精益求精&#xff0c;建立稳固的消费者认知&#xff0c;才是“保鲜”关键。在最新发布的数说故事5月…

MyBatis Plus 拦截器实现数据权限控制

一、介绍 上篇文章介绍的MyBatis Plus 插件实际上就是用拦截器实现的&#xff0c;MyBatis Plus拦截器对MyBatis的拦截器进行了包装处理&#xff0c;操作起来更加方便 二、自定义拦截器 2.1、InnerInterceptor MyBatis Plus提供的InnerInterceptor接口提供了如下方法&#x…

基于AI技术的API开发工具,自动化和智能化快速高效开发API

一、开源项目简介 ApiCat 是一款基于 AI 技术的 API 开发工具&#xff0c;它旨在通过自动化和智能化的方式&#xff0c;帮助开发人员更快速、更高效地开发 API。ApiCat 支持 OpenAPI 和 Swagger 的数据文件导入和导出&#xff0c;并可以对用户输入的 API 需求进行分析和识别&a…

真题详解(补码转换)-软件设计(七十四)

真题详解(索引查询)-软件设计&#xff08;七十三)https://blog.csdn.net/ke1ying/article/details/130659024 Composite模式&#xff1a; 以树形结构来表示”整体-部分”的关系&#xff0c;使得单个和团体的使用都具有一致性。 对一个基本有序的数组进行排序&#xff0c;适合…

精彩回顾 | Fortinet Accelerate 2023·中国区巡展厦门站

Fortinet Accelerate 2023中国区 5月16日&#xff0c;Fortinet Accelerate 2023中国区巡展来到魅力“鹭岛”——厦门&#xff0c;技术、产品和业务专家&#xff0c;携手亚马逊云科技、唯一网络等云、网、安合作伙伴&#xff0c;与交通、物流、金融等各行业典型代表客户&#x…

HR真的会嫌弃跳槽频繁的测试人员吗?

我们都知道&#xff1a;“跳槽≠涨薪”&#xff0c;但是对于测试人来说&#xff0c;跳槽绝哔能和升职加薪画上等号啊。 所以&#xff0c;有很多测试人在一家公司常常待不到1年&#xff0c;就另觅新东家&#xff0c;来借此达成升职加薪的目的。 有人提出质疑&#xff1a;为什么测…

嚯——ChatGPT是很强,但也会胡说八道。。。

现在的ChatGPT确实强&#xff0c;但是也会一本正经的胡说八道&#xff0c;例如它回答“nineteen”中有12个字母、或是旗鱼是哺乳动物…… 尽管ChatGPT可以生成流畅甚至优雅的散文&#xff0c;轻松通过困扰了AI领域超过70年的图灵测试基准&#xff0c;但它也可能看起来非常愚蠢…

探讨接口测试颗粒度

偶然间在论坛上看到一个帖子&#xff0c;帖子内容如下&#xff1a; 假设现在有一个新增商品的接口&#xff0c;返回的参数中有新增商品的 id&#xff08;每次返回的 id 都不一样&#xff09;、success&#xff08;判断是否成功&#xff0c;0 失败 1 成功&#xff09; 1. 接口…

Elasticsearch painless脚本教程(包含Java API和SpringDataElasticsearch调用脚本)

Elasticsearch painless脚本 1.什么是painless2.painless的特性3.使用kibana进行准备操作3.1 使用kibana创建索引和映射3.2 使用kibana添加测试数据 4.使用painless执行查询操作关于脚本查询须知4.1 字段查询脚本4.1 排序查询脚本 5.如何使用painless执行更新操作关于脚本查询须…

【机器学习】第二节:线性回归和线性分类

作者&#x1f575;️‍♂️&#xff1a;让机器理解语言か 专栏&#x1f387;&#xff1a;机器学习sklearn 描述&#x1f3a8;&#xff1a;本专栏主要分享博主学习机器学习的笔记和一些心得体会。 寄语&#x1f493;&#xff1a;&#x1f43e;没有白走的路&#xff0c;每一步都算…

Text-to-SQL提示工程【Prompt Engineering】

我们刚刚启动了一个开源项目pg-text-query&#xff0c;目标是为文本到 SQL 制作生产就绪的大型语言模型 (LLM) 提示。 我们的目标是 利用 LLM、我们自己对 PostgreSQL 数据库的深入了解以及严格的测试来开发一流的文本到 SQL 的翻译。 推荐&#xff1a;用 NSDT设计器 快速搭建…

【MySQL】C语言连接数据库

在使用数据库的时候&#xff0c;我们是操作客户端方的&#xff0c;向服务器请求数据。MySQL的端口号-3306 连接mysql需要头文件&#xff1a;#include<mysql/mysql.h> 基础连接步骤&#xff1a; 1.创建连接句柄 MYSQL mysql_con;//连接句柄 2.初始化连接句柄mysql_i…