Cesium中ImageryProvider分类及Entity实体

Cesium从入门到项目实战总目录: 点击

1.Cesium中ImageryProvider分类

在Cesium中,ImageryProvider是用于提供地球表面图像的接口。Cesium支持多种类型的ImageryProvider,每种类型的提供器都支持不同的地图服务和数据源。以下是Cesium中常用的ImageryProvider分类:

  1. ArcGisMapServerImageryProvider:用于连接Esri的ArcGIS Map Server服务,支持多种地图服务,如矢量地图、卫星地图、地形地图等。
  2. BingMapsImageryProvider:用于连接Bing Maps服务,支持全球卫星地图、道路地图、混合地图等。
  3. GoogleEarthImageryProvider:用于连接Google Earth服务,支持卫星地图、道路地图、地形地图等。
  4. SingleTileImageryProvider:用于加载单张静态图像作为图层,常用于加载静态地图或地形数据。
  5. TileCoordinatesImageryProvider:用于加载预定义范围内的切片地图数据,可用于自定义地图数据源。
  6. TileMapServiceImageryProvider:用于连接标准的WMTS(Web Map Tile Service)服务,支持多种地图服务,如OpenStreetMap、Mapbox等。
  7. UrlTemplateImageryProvider:用于加载可变地址的切片地图数据,常用于自定义地图数据源。

以上是Cesium中常用的ImageryProvider分类,每种ImageryProvider都有自己的特点和应用场景,具体使用可以参考Cesium的官方文档和示例代码。

1.Cesium中ImageryProvider分类及其代码实现

  1. ArcGisMapServerImageryProvider

ArcGisMapServerImageryProvider用于连接Esri的ArcGIS Map Server服务,支持多种地图服务,如矢量地图、卫星地图、地形地图等。

var imageryProvider = new Cesium.ArcGisMapServerImageryProvider({
    url: 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer'
});

viewer.imageryLayers.addImageryProvider(imageryProvider);

  1. BingMapsImageryProvider

BingMapsImageryProvider用于连接Bing Maps服务,支持全球卫星地图、道路地图、混合地图等。

var imageryProvider = new Cesium.BingMapsImageryProvider({
    url: 'https://dev.virtualearth.net',
    key: 'Your Bing Maps Key',
    mapStyle: Cesium.BingMapsStyle.AERIAL_WITH_LABELS
});

viewer.imageryLayers.addImageryProvider(imageryProvider);

  1. GoogleEarthImageryProvider

GoogleEarthImageryProvider用于连接Google Earth服务,支持卫星地图、道路地图、地形地图等。

var imageryProvider = new Cesium.GoogleEarthImageryProvider({
    url: 'https://kh.google.com',
    channel: 't'
});

viewer.imageryLayers.addImageryProvider(imageryProvider);

  1. SingleTileImageryProvider

SingleTileImageryProvider用于加载单张静态图像作为图层,常用于加载静态地图或地形数据

var imageryProvider = new Cesium.SingleTileImageryProvider({
    url: 'path/to/image.png',
    rectangle: Cesium.Rectangle.fromDegrees(-75.0, 39.0, -71.0, 42.0)
});

viewer.imageryLayers.addImageryProvider(imageryProvider);

  1. TileCoordinatesImageryProvider

TileCoordinatesImageryProvider用于加载预定义范围内的切片地图数据,可用于自定义地图数据源。

var imageryProvider = new Cesium.TileCoordinatesImageryProvider({
    rectangle: Cesium.Rectangle.fromDegrees(-180.0, -90.0, 180.0, 90.0),
    tileWidth: 256,
    tileHeight: 256,
    maximumLevel: 5,
    tilingScheme: new Cesium.GeographicTilingScheme()
});

viewer.imageryLayers.addImageryProvider(imageryProvider);

  1. TileMapServiceImageryProvider

TileMapServiceImageryProvider用于连接标准的WMTS(Web Map Tile Service)服务,支持多种地图服务,如OpenStreetMap、Mapbox等。

var imageryProvider = new Cesium.TileMapServiceImageryProvider({
    url: 'https://tile.openstreetmap.org',
    fileExtension: 'png',
    maximumLevel: 18,
    credit: 'OpenStreetMap contributors'
});

viewer.imageryLayers.addImageryProvider(imageryProvider);

2.Cesium中Entity 实体介绍

在Cesium中,Entity是指在三维场景中的物体,可以是点、线、面、模型、传感器等。每个Entity可以包括一个或多个属性,例如位置、方向、大小、颜色、材质、标签等。Entity是Cesium的核心对象之一,用于描述三维场景中的实体,提供了对场景中物体的创建、更新和删除等操作。

1.Entity对象具有以下属性:

  1. id:每个Entity都有一个唯一的id。
  2. name:Entity的名称。
  3. position:Entity的位置,可以是笛卡尔坐标系或地理坐标系。
  4. orientation:Entity的方向,可以是四元数或欧拉角。
  5. velocity:Entity的速度。
  6. modelMatrix:Entity的变换矩阵,用于描述Entity的缩放、旋转和平移。
  7. billboard:Entity的贴图。
  8. label:Entity的标签。
  9. polyline:Entity的折线,用于连接多个点。
  10. polygon:Entity的多边形,用于填充多个点组成的区域。
  11. ellipse:Entity的椭圆,用于描述圆形或椭圆形的物体。
  12. corridor:Entity的走廊,用于描述一个长方形的区域。
  13. cylinder:Entity的圆柱体,用于描述一个圆柱体。
  14. box:Entity的立方体,用于描述一个立方体。
  15. sphere:Entity的球体,用于描述一个球体。
  16. availability:Entity的可用性。
  17. description:Entity的描述信息。
  18. properties:Entity的自定义属性。

Entity对象还可以响应鼠标事件,例如鼠标点击、双击、移动等,可以通过监听Entity对象的相应事件来实现交互功能。

在Cesium中,Entity是描述三维场景中实体的重要对象,可以使用Entity来创建、更新和删除场景中的物体,并且可以添加自定义属性和交互功能。

欢迎您关注我的原创公众号【GISer世界】,本期分享到这里就结束了。在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值