Cesium从入门到项目实战总目录: 点击
文章目录
1.Cesium中ImageryProvider分类
在Cesium中,ImageryProvider是用于提供地球表面图像的接口。Cesium支持多种类型的ImageryProvider,每种类型的提供器都支持不同的地图服务和数据源。以下是Cesium中常用的ImageryProvider分类:
- ArcGisMapServerImageryProvider:用于连接Esri的ArcGIS Map Server服务,支持多种地图服务,如矢量地图、卫星地图、地形地图等。
- BingMapsImageryProvider:用于连接Bing Maps服务,支持全球卫星地图、道路地图、混合地图等。
- GoogleEarthImageryProvider:用于连接Google Earth服务,支持卫星地图、道路地图、地形地图等。
- SingleTileImageryProvider:用于加载单张静态图像作为图层,常用于加载静态地图或地形数据。
- TileCoordinatesImageryProvider:用于加载预定义范围内的切片地图数据,可用于自定义地图数据源。
- TileMapServiceImageryProvider:用于连接标准的WMTS(Web Map Tile Service)服务,支持多种地图服务,如OpenStreetMap、Mapbox等。
- UrlTemplateImageryProvider:用于加载可变地址的切片地图数据,常用于自定义地图数据源。
以上是Cesium中常用的ImageryProvider分类,每种ImageryProvider都有自己的特点和应用场景,具体使用可以参考Cesium的官方文档和示例代码。
1.Cesium中ImageryProvider分类及其代码实现
- 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);
- 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);
- GoogleEarthImageryProvider
GoogleEarthImageryProvider用于连接Google Earth服务,支持卫星地图、道路地图、地形地图等。
var imageryProvider = new Cesium.GoogleEarthImageryProvider({
url: 'https://kh.google.com',
channel: 't'
});
viewer.imageryLayers.addImageryProvider(imageryProvider);
- 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);
- 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);
- 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对象具有以下属性:
- id:每个Entity都有一个唯一的id。
- name:Entity的名称。
- position:Entity的位置,可以是笛卡尔坐标系或地理坐标系。
- orientation:Entity的方向,可以是四元数或欧拉角。
- velocity:Entity的速度。
- modelMatrix:Entity的变换矩阵,用于描述Entity的缩放、旋转和平移。
- billboard:Entity的贴图。
- label:Entity的标签。
- polyline:Entity的折线,用于连接多个点。
- polygon:Entity的多边形,用于填充多个点组成的区域。
- ellipse:Entity的椭圆,用于描述圆形或椭圆形的物体。
- corridor:Entity的走廊,用于描述一个长方形的区域。
- cylinder:Entity的圆柱体,用于描述一个圆柱体。
- box:Entity的立方体,用于描述一个立方体。
- sphere:Entity的球体,用于描述一个球体。
- availability:Entity的可用性。
- description:Entity的描述信息。
- properties:Entity的自定义属性。
Entity对象还可以响应鼠标事件,例如鼠标点击、双击、移动等,可以通过监听Entity对象的相应事件来实现交互功能。
在Cesium中,Entity是描述三维场景中实体的重要对象,可以使用Entity来创建、更新和删除场景中的物体,并且可以添加自定义属性和交互功能。
欢迎您关注我的原创公众号【GISer世界】,本期分享到这里就结束了。