cesium api E、F、G开头

1、EasingFunction是一个用于在动画或过渡中调整速度的数学函数。它可以让动画的过程更加平滑,给用户更好的视觉体验。常见的EasingFunction包括线性函数、加速函数和减速函数等。线性函数会以恒定的速度进行过渡,加速函数则会逐渐增加速度,而减速函数则会逐渐减小速度。除此之外,还有一些其他类型的EasingFunction,如弹簧效果、弹跳效果等,可以根据需要选择适合的EasingFunction来实现各种动画效果。

2、Cesium.EllipseGeometry是Cesium.js中的一个几何图形类,用于创建椭圆形的几何体。椭圆形是一个二维图形,具有中心点、半长轴和半短轴,可以用来表示旋转的圆或椭圆形的平面几何体。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 定义椭圆形参数
var ellipsoid = Cesium.Ellipsoid.WGS84;
var center = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
var semiMajorAxis = 500000.0;
var semiMinorAxis = 300000.0;
var rotation = Cesium.Math.toRadians(45.0); // 旋转角度

// 创建椭圆形几何体
var ellipseGeometry = new Cesium.EllipseGeometry({
    center: center,
    semiMajorAxis: semiMajorAxis,
    semiMinorAxis: semiMinorAxis,
    rotation: rotation
});

// 创建椭圆形实例
var ellipseInstance = new Cesium.GeometryInstance({
    geometry: ellipseGeometry,
    attributes: {
        color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED) // 设置椭圆形的颜色
    }
});

// 将椭圆形实例添加到场景中
var primitive = new Cesium.Primitive({
    geometryInstances: ellipseInstances,
    appearance: new Cesium.PerInstanceColorAppearance()
});
viewer.scene.primitives.add(primitive);

3、Cesium.EllipseGraphics是Cesium.js中的一个图形属性类,用于描述和配置椭圆形的外观和行为。与Cesium.EllipseGeometry不同,Cesium.EllipseGraphics提供了更高级的接口,可以直接在Cesium的Entity中使用,实现更方便的椭圆形可视化。

使用Cesium.EllipseGraphics,您可以通过设置属性来定义椭圆形的外观、位置和行为。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 创建一个Entity
var entity = viewer.entities.add({
    position: Cesium.Cartesian3.fromDegrees(longitude, latitude, height), // 设置椭圆形的位置
    ellipse: {
        semiMajorAxis: 500000.0, // 半长轴
        semiMinorAxis: 300000.0, // 半短轴
        rotation: Cesium.Math.toRadians(45.0), // 旋转角度
        material: Cesium.Color.RED.withAlpha(0.5), // 填充材质
        outline: true, // 是否显示边框
        outlineColor: Cesium.Color.BLACK, // 边框颜色
        outlineWidth: 2.0, // 边框宽度
    }
});

// 调整场景视角以显示整个椭圆形
viewer.zoomTo(entity);

4、Cesium.EllipseOutlineGeometry是Cesium.js中的一个几何图形类,用于创建椭圆形的轮廓线几何体。椭圆形轮廓线几何体表示椭圆形的边界线段,可以用于绘制椭圆形的轮廓或边界线。

使用Cesium.EllipseOutlineGeometry,您可以通过指定椭圆的中心点、半长轴、半短轴、旋转角度等参数来创建一个椭圆形的轮廓线几何体。它可以用于绘制2D或3D场景中的椭圆形轮廓。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 定义椭圆形参数
var ellipsoid = Cesium.Ellipsoid.WGS84;
var center = Cesium.Cartesian3.fromDegrees(longitude, latitude);
var semiMajorAxis = 500000.0;
var semiMinorAxis = 300000.0;
var rotation = Cesium.Math.toRadians(45.0); // 旋转角度

// 创建椭圆形轮廓线几何体
var ellipseOutlineGeometry = new Cesium.EllipseOutlineGeometry({
    center: center,
    semiMajorAxis: semiMajorAxis,
    semiMinorAxis: semiMinorAxis,
    rotation: rotation,
    granularity: Cesium.Math.RADIANS_PER_DEGREE // 角度精度,每度的弧度数
});

// 创建椭圆形实例
var geometryInstance = new Cesium.GeometryInstance({
    geometry: ellipseOutlineGeometry,
    attributes: {
        color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED) // 设置轮廓线颜色
    }
});

// 创建轮廓线几何体的渲染模型
var primitive = new Cesium.Primitive({
    geometryInstances: geometryInstance,
    appearance: new Cesium.PerInstanceColorAppearance(),
    releaseGeometryInstances: false
});
viewer.scene.primitives.add(primitive);

5、Cesium.Ellipsoid是Cesium.js中的一个类,用于表示地球的椭球体模型。椭球体模型用于近似地球的形状,因为地球不是完全的球体,它更接近一个椭球。Cesium.Ellipsoid类提供了用于描述和操作椭球体的方法和属性。

椭球体的定义包括三个主要参数:半长轴(semiMajorAxis)、半短轴(semiMinorAxis)、扁率(flattening)。半长轴和半短轴是椭球体的两个主要半径,而扁率表示椭球体的压扁程度。Cesium.Ellipsoid类提供了获取和设置这些参数的方法。

您可以使用Cesium.Ellipsoid类的实例来进行坐标转换和测量操作。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 获取Cesium的Ellipsoid对象
var ellipsoid = viewer.scene.globe.ellipsoid;

// 获取地心笛卡尔坐标
var cartographicPosition = Cesium.Cartographic.fromDegrees(longitude, latitude, height);
var cartesianPosition = ellipsoid.cartographicToCartesian(cartographicPosition);

// 将笛卡尔坐标转换为地理坐标
var cartographic = ellipsoid.cartesianToCartographic(cartesianPosition);
var longitude = Cesium.Math.toDegrees(cartographic.longitude);
var latitude = Cesium.Math.toDegrees(cartographic.latitude);
var height = cartographic.height;

// 计算两个点之间的距离
var point1 = Cesium.Cartesian3.fromDegrees(longitude1, latitude1, height1);
var point2 = Cesium.Cartesian3.fromDegrees(longitude2, latitude2, height2);
var distance = Cesium.Cartesian3.distance(point1, point2);

// 输出结果
console.log("地心笛卡尔坐标: ", cartesianPosition);
console.log("地理坐标: ", longitude, latitude, height);
console.log("距离: ", distance);

6、Cesium.EllipsoidGeodesic是Cesium.js中的一个类,用于计算椭球体上两个点之间的大圆(地理)路径和相关距离。它可以用于在地球或任何椭球体表面上计算两点之间的最短路径、距离和方向等。

使用Cesium.EllipsoidGeodesic,您可以创建一个表示大圆路径的对象,并使用它的方法来获取路径上的点、计算路径的距离和方向,甚至生成插值点。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 定义起点和终点的经纬度坐标
var startPoint = Cesium.Cartographic.fromDegrees(longitude1, latitude1);
var endPoint = Cesium.Cartographic.fromDegrees(longitude2, latitude2);

// 创建EllipsoidGeodesic对象
var geodesic = new Cesium.EllipsoidGeodesic(startPoint, endPoint, viewer.scene.globe.ellipsoid);

// 获取大圆路径上的一组插值点
var steps = 100;
var positions = [];
for (var i = 0; i < steps; i++) {
    var interpolatedPoint = geodesic.interpolateUsingFraction(i / steps);
    var cartesianPoint = viewer.scene.globe.ellipsoid.cartographicToCartesian(interpolatedPoint);
    positions.push(cartesianPoint);
}
var polyline = viewer.entities.add({
    polyline: {
        positions: positions,
        width: 5,
        material: Cesium.Color.RED
    }
});

// 计算大圆路径的距离
var distance = geodesic.surfaceDistance; // 大圆路径的表面距离

// 输出结果
console.log("大圆路径距离: ", distance);

7、Cesium.EllipsoidGeometry是Cesium.js中的一个几何图形类,用于创建椭球体的几何体。椭球体几何体表示一个近似地球形状的椭球,可以用于绘制地球或其他椭球体的模型。

使用Cesium.EllipsoidGeometry,您可以创建一个椭球体的几何体,并将其应用于Cesium的Primitive或其他几何图形实例中,以在场景中呈现椭球体。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 定义椭球体参数
var radii = new Cesium.Cartesian3(500000.0, 500000.0, 500000.0); // 椭球体的半长轴、半短轴和半短轴
var ellipsoidGeometry = new Cesium.EllipsoidGeometry({
    radii: radii
});

// 创建椭球体实例
var geometryInstance = new Cesium.GeometryInstance({
    geometry: ellipsoidGeometry,
    attributes: {
        color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED) // 设置椭球体颜色
    }
});

// 创建几何体的渲染模型
var primitive = new Cesium.Primitive({
    geometryInstances: geometryInstance,
    appearance: new Cesium.PerInstanceColorAppearance(),
    releaseGeometryInstances: false
});
viewer.scene.primitives.add(primitive);

8、Cesium.EllipsoidGraphics是Cesium.js中的一个图形类,用于在场景中创建和渲染椭球体。它是Cesium.Entity的一个属性,可以用于设置椭球体的外观、位置和其他属性。

使用Cesium.EllipsoidGraphics,您可以在场景中创建一个椭球体,并设置其位置、半径、材质、轮廓等属性。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 创建一个Cesium.Entity对象
var entity = viewer.entities.add({
    position: Cesium.Cartesian3.fromDegrees(longitude, latitude, height), // 椭球体的位置
    ellipsoid: {
        radii: new Cesium.Cartesian3(1000000.0, 1000000.0, 500000.0), // 椭球体的半长轴、半短轴和半短轴
        material: Cesium.Color.RED.withAlpha(0.5), // 椭球体的颜色和透明度
        outline: true, // 是否显示轮廓线
        outlineColor: Cesium.Color.BLACK, // 轮廓线的颜色
        outlineWidth: 2, // 轮廓线的宽度
    }
});

9、Cesium.EllipsoidOutlineGeometry是Cesium.js中的一个几何图形类,用于创建椭球体的外观的几何体,即椭球体的轮廓线几何体。它表示一个近似地球形状的椭球,可以用于绘制椭球体的外观和轮廓线。

使用Cesium.EllipsoidOutlineGeometry,您可以创建一个椭球体的轮廓线几何体,并将其应用于Cesium的Primitive或其他几何图形实例中,以在场景中呈现椭球体的轮廓线。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 定义椭球体参数
var radii = new Cesium.Cartesian3(500000.0, 500000.0, 500000.0); // 椭球体的半长轴、半短轴和半短轴
var ellipsoidOutlineGeometry = new Cesium.EllipsoidOutlineGeometry({
    radii: radii
});

// 创建几何体实例
var geometryInstance = new Cesium.GeometryInstance({
    geometry: ellipsoidOutlineGeometry,
    attributes: {
        color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED) // 设置椭球体轮廓线的颜色
    }
});

// 创建几何体的渲染模型
var primitive = new Cesium.Primitive({
    geometryInstances: geometryInstance,
    appearance: new Cesium.PerInstanceColorAppearance(),
    releaseGeometryInstances: false
});
viewer.scene.primitives.add(primitive);

10、Cesium.EllipsoidSurfaceAppearance是Cesium.js中的一个外观类,用于定义椭球体表面的外观效果。它可以用来设置椭球体的材质、纹理、光照效果等属性,以控制椭球体在场景中的渲染表现。

使用Cesium.EllipsoidSurfaceAppearance,您可以创建一个椭球体表面的外观实例,并将其应用于Cesium的Primitive或其他几何图形实例中,以渲染椭球体的表面。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 创建一个椭球体实例
var ellipsoid = Cesium.Ellipsoid.fromCartesian3(new Cesium.Cartesian3(0, 0, 0), new Cesium.Cartesian3(500000.0, 500000.0, 500000.0)); // 创建椭球体对象

// 创建几何体实例
var geometry = new Cesium.GeometryInstance({
    geometry: new Cesium.EllipsoidGeometry({
        ellipsoid: ellipsoid
    }),
    attributes: {
        color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED), // 设置椭球体表面的颜色
    }
});

// 创建渲染模型
var appearance = new Cesium.EllipsoidSurfaceAppearance({
    aboveGround: true // 设置表面是否显示在地面之上
});
var primitive = new Cesium.Primitive({
    geometryInstances: geometry,
    appearance: appearance
});
viewer.scene.primitives.add(primitive);

11、Cesium.EllipsoidTangentPlane(椭球切平面)是Cesium.js中的一个类,用于计算椭球体上某一点的切平面。它提供了获取切平面的方法,并可以用于在特定位置上绘制切平面、计算切平面上的点坐标等操作。

在Cesium.js中,椭球切平面主要用于处理三维场景中的坐标转换问题。通过获取椭球体上某一点的切平面,可以将该点的坐标系转换为切平面上的局部坐标系,方便进行一些特定的计算和操作。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 定义椭球体上某一点的坐标
var position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);

// 创建椭球切平面
var tangentPlane = new Cesium.EllipsoidTangentPlane(position, Cesium.Ellipsoid.WGS84);

// 获取切平面上的坐标点
var pointOnPlane = new Cesium.Cartesian3(1000, 1000, 0);
var pointOnEllipsoid = tangentPlane.projectPointOntoPlane(pointOnPlane);

// 创建一个圆形实例,以切平面上的点为圆心
var circle = new Cesium.CircleGeometry({
    center: pointOnEllipsoid,
    radius: 10000
});

// 创建一个Primitive实例,并添加到场景中
var primitive = new Cesium.Primitive({
    geometryInstances: new Cesium.GeometryInstance({
        geometry: circle,
        attributes: {
            color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.YELLOW)
        }
    }),
    appearance: new Cesium.PerInstanceColorAppearance()
});
viewer.scene.primitives.add(primitive);

12、Cesium.EllipsoidTerrainProvider是Cesium.js中的一个地形数据提供者类,用于加载和显示基于椭球体的地形数据。它提供了一种在Cesium场景中呈现地形的方式,使用户可以在三维地球上浏览和交互。

使用Cesium.EllipsoidTerrainProvider,您可以将该地形数据提供者应用于Cesium的Viewer对象,并通过指定不同的选项来加载和显示不同的地形数据。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 创建EllipsoidTerrainProvider对象,并设置相关选项
var terrainProvider = new Cesium.EllipsoidTerrainProvider({
    // 设置地形数据的URL
    url: 'https://assets.cesium.com/1/20170403/3DTiles/GroundWater/site/',
    // 设置地形数据的最大细节级别
    maximumLevel: 18,
    // 设置地形请求的最大并发数
    requestVertexNormals: true
});

// 将地形数据提供者应用于Viewer对象
viewer.terrainProvider = terrainProvider;

13、Cesium.Entity是Cesium.js中的一个实体类,用于在三维场景中表示和管理单个实体的属性和行为。它是Cesium中的一个核心概念,用于在场景中呈现实体对象,例如点、线、面、模型等。

通过Cesium.Entity,您可以设置实体的位置、姿态、几何形状、样式、属性等,并将其添加到Cesium的Viewer对象中以显示和交互。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 创建一个点实体
var position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);
var pointEntity = viewer.entities.add({
  position: position,
  point: {
    pixelSize: 10,
    color: Cesium.Color.RED
  }
});

// 创建一个线实体
var lineEntity = viewer.entities.add({
  polyline: {
    positions: Cesium.Cartesian3.fromDegreesArray([
      longitude1, latitude1, longitude2, latitude2
    ]),
    width: 3,
    material: Cesium.Color.BLUE
  }
});

// 创建一个面实体
var polygonEntity = viewer.entities.add({
  polygon: {
    hierarchy: Cesium.Cartesian3.fromDegreesArray([
      longitude1, latitude1, longitude2, latitude1, longitude2, latitude2, longitude1, latitude2
    ]),
    material: Cesium.Color.GREEN.withAlpha(0.5)
  }
});

14、Cesium.EntityCluster是Cesium.js中的一个实体群集类,用于将多个实体对象聚合成一个单独的实体,以提高性能和可视化效果。它可用于处理大量实体对象的显示和交互,从而优化场景中复杂的实体展示。

通过Cesium.EntityCluster,您可以将多个实体对象聚集为一个实体,并指定聚集的方式和样式。聚集后的实体可以显示为一个代表性的图标或几何形状,以表示聚合的实体数量。当用户与聚集的实体进行交互时,可以展开聚集并显示更多的实体细节。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 创建一个EntityCluster对象
var cluster = new Cesium.EntityCluster(viewer, {
  clusterBillboards: true, // 指定是否使用图标表示聚集实体
  clusterLabels: true, // 指定是否使用标签表示聚集实体
  clusterPoints: true, // 指定是否使用点表示聚集实体
  clusterRadius: 100 // 指定聚集的半径范围
});

// 创建一组实体并添加到实体群集中
var entities = [];
for (var i = 0; i < 1000; i++) {
  var position = Cesium.Cartesian3.fromDegrees(
    longitude[i],
    latitude[i],
    height[i]
  );
  entities.push(
    viewer.entities.add({
      position: position,
      billboard: {
        image: 'icon.png', // 设置实体图标
        scale: 0.5
      }
    })
  );
}
cluster.addEntities(entities);

15、Cesium.EntityCollection是Cesium.js中的一个实体集合类,用于管理和操作多个实体对象。它提供了一些方法和属性,用于添加、移除和获取实体对象,并对实体集合进行遍历、过滤和监听等操作。

通过Cesium.EntityCollection,您可以创建一个集合来存储和管理多个实体对象,并对它们进行统一的操作。

// 创建Cesium的Viewer对象
var viewer = new Cesium.Viewer('cesiumContainer');

// 创建一个实体集合
var entityCollection = new Cesium.EntityCollection();

// 创建一个点实体
var pointEntity = new Cesium.Entity({
  position: new Cesium.Cartesian3.fromDegrees(longitude, latitude),
  point: {
    pixelSize: 10,
    color: Cesium.Color.RED
  }
});

// 将点实体添加到实体集合中
entityCollection.add(pointEntity);

// 创建一个线实体
var lineEntity = new Cesium.Entity({
  polyline: {
    positions: new Cesium.Cartesian3.fromDegreesArray([
      longitude1, latitude1, longitude2, latitude2
    ]),
    width: 3,
    material: Cesium.Color.BLUE
  }
});

// 将线实体添加到实体集合中
entityCollection.add(lineEntity);

// 遍历实体集合并修改属性
entityCollection.forEach(function(entity) {
  entity.point.pixelSize = 20;
});

// 移除实体集合中的点实体
entityCollection.remove(pointEntity);

16、Cesium.Event是Cesium.js中的一个事件类,用于处理和管理事件的订阅和触发。它提供了一种机制,让开发者能够在特定的事件发生时执行自定义的回调函数。

通过Cesium.Event,您可以定义自己的事件并添加订阅者,以便在事件触发时执行相应的逻辑。

// 创建一个事件对象
var myEvent = new Cesium.Event();

// 添加事件的订阅者
var subscriber = myEvent.addEventListener(function(arg) {
  console.log('Event triggered with argument: ' + arg);
});

// 触发事件并传递参数
myEvent.raiseEvent('Hello World');

// 取消订阅事件
myEvent.removeEventListener(subscriber);

17、在Cesium中,exportKml()函数用于将Cesium场景导出为KML(Keyhole Markup Language)格式。KML是一种地理信息标记语言,常用于描述地理位置、图形和标记点等地理数据。

var viewer = new Cesium.Viewer('cesiumContainer');

// 创建一个实体,作为示例数据
var entity = viewer.entities.add({
    name: 'Sample Entity',
    position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
    point: { pixelSize: 10 }
});

// 导出Cesium场景为KML
var kml = Cesium.exportKml({
    entities: [entity]
});

// 将KML数据保存到文件
var kmlBlob = new Blob([kml], { type: 'application/vnd.google-earth.kml+xml' });
saveBlobToFile(kmlBlob, 'cesiumScene.kml');

// 辅助函数:保存Blob数据到文件
function saveBlobToFile(blob, filename) {
    var link = document.createElement('a');
    link.href = URL.createObjectURL(blob);
    link.download = filename;
    link.click();
}

18、在Cesium中, “Expression” 表达式是一种用于定义特定场景属性的动态值的方法。它允许你使用一些数学、几何或者其他自定义函数来计算属性值,以便实现更加灵活的场景效果。

var viewer = new Cesium.Viewer("cesiumContainer");

// 创建一个点实体
var entity = viewer.entities.add({
  position: Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883),
  point: {
    pixelSize: new Cesium.Expression("10 + (10 * Math.sin(time))"),
    color: new Cesium.Expression("Cesium.Color.BLUE.withAlpha(0.5)")
  }
});

// 监听时钟的更新
viewer.clock.onTick.addEventListener(function (clock) {
  // 更新点实体的表达式值
  entity.point.pixelSize = 10 + (10 * Math.sin(clock.currentTime.seconds));
  entity.point.color = Cesium.Color.BLUE.withAlpha(0.5);
});

19、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值