爱站工具seo综合查询,哪些因素营销网站权重,成品直播大全观视频的技巧,大连短视频代运营Cesium中文网#xff1a;http://cesiumcn.org/| 国内快速访问#xff1a;http://cesium.coinidea.com/本教程将教读者如何使用Cesium的实体#xff08;Entity#xff09;API绘制空间数据#xff0c;如点、标记、标签、线、模型、形状和物体。不需要Cesium的先验知识#…Cesium中文网http://cesiumcn.org/| 国内快速访问http://cesium.coinidea.com/本教程将教读者如何使用Cesium的实体EntityAPI绘制空间数据如点、标记、标签、线、模型、形状和物体。不需要Cesium的先验知识但是如果读者完全没有这方面的经验那么读者可能希望从“新手入门中文教程原创”开始学习。什么是实体EntityAPICesium具有丰富的用于空间数据的API可以分为两类面向图形开发人员的低级API通常称为原始(Primitive)API和用于数据驱动的可视化的高级API称为实体(Entity)API。原始API的主要目标是暴露手头执行任务所需的最小抽象量。它希望我们像图形程序员一样思考并使用图形术语。它的结构是为给定的可视化类型提供最有性能和灵活性的实现而不是为了API的一致性。加载一个模型不同于创建一个广告牌两者都与创建多边形完全不同。每种类型的可视化都有其独特的特征。此外它们各自具有不同的性能特征并且需要遵循不同的最佳实践。虽然它功能强大且灵活但大多数应用程序都比Primitive API提供的抽象级别更高。原始API的主要目标是开放手头当前研发工作的所需的最小抽象量。它希望我们像图形程序员一样思考并使用图形术语。它的结构是为给定的可视化类型提供最有性能和灵活性的实现而不是为了API的一致性。加载一个模型不同于创建一个广告牌Billboard 两者都与创建多边形完全不同。每种类型的可视化都有其独特的特征。此外它们各自具有不同的性能特征并且需要遵循不同的最佳实践。虽然它功能强大且灵活但大多数应用程序都提供比Primitive API的抽象级别更高的服务接口。实体API的目的是公开一组设计一致的高级对象这些对象将相关的可视化和信息聚合到一个统一的数据结构中我们称之为实体。它让我们专注于展示我们的数据而不是担心可视化的潜在机制。它还提供了易于构建复杂的、时间动态可视化的构造这种可视化方式与静态数据自然相适应。虽然实体API实际上在背后使用了原始API(Primitive API)但这是我们几乎永远不必关注的实现细节。通过将各种启发式应用到我们提供的数据实体API能够提供灵活的、高性能的可视化同时公开一致的、易于学习和易于使用的接口。我们的第一个实体学习实体API的基本方法之一是通过查看一些代码。为了让事情简单化我们将在CesiumSandcastle的Hello World例子中构建。如果读者在本地开发Cesium可以自由地使用自己的应用程序。假设我们想从经度和纬度的列表中添加一个美国州怀俄明的多边形。怀俄明之所以被选中是因为它是一个简单的多边形我们可以把下面的代码复制粘贴到Sandcastle去做var viewer new Cesium.Viewer(cesiumContainer);var wyoming viewer.entities.add({name : Wyoming,polygon : {hierarchy : Cesium.Cartesian3.fromDegreesArray([-109.080842,45.002073,-105.91517,45.002073,-104.058488,44.996596,-104.053011,43.002989,-104.053011,41.003906,-105.728954,40.998429,-107.919731,41.003906,-109.04798,40.998429,-111.047063,40.998429,-111.047063,42.000709,-111.047063,44.476286,-111.05254,45.002073]),height : 0,material : Cesium.Color.RED.withAlpha(0.5),outline : true,outlineColor : Cesium.Color.BLACK}});viewer.zoomTo(wyoming);点击运行按钮或者F8能看到下面的图像因为我们的一个目标是让Cesium的代码易于理解希望这是不言自明的。我们创建了Viewer widget它充当几乎所有Cesium应用程序的基础然后通过viewer.entities.add. 添加一个新的Entity。我们传递的需add的对象只是一个提供初始值的选项参数。返回值是实际的实体实例。最后我们调用 viewer.zoomTo 以确保实体处于视图中。有很多实体选项可用但是现在我们指定polygon内部的半透明红色和边界的黑色轮廓。我们也给实体一个“Wyoming 怀俄明”的显示名称。形状和物体有了创建多边形的基本知识并且由于实体API的同质性我们现在可以通过简单地使用Sandcastle中的示例作为参考来创建各种图形。下面是支持的形状和物体的完整列表。材质和轮廓不管它们的几何定义如何所有形状和物体都有一组共同的属性来控制它们的外观。fill属性是一个布尔值它指定是否填充了表面的内部而outline属性控制形状的边缘是否被轮廓化。当fill设为truematerial属性决定填充物是什么。在接下来的例子中让我们创建一个半透明的蓝色椭圆。默认情况下fill是trueoutline是false所以我们只需要指定material。var entity viewer.entities.add({position: Cesium.Cartesian3.fromDegrees(-103.0, 40.0),ellipse : {semiMinorAxis : 250000.0,semiMajorAxis : 400000.0,material : Cesium.Color.BLUE.withAlpha(0.5)}});viewer.zoomTo(viewer.entities);var ellipse entity.ellipse; // For upcoming examplesImage我们也可以将材质指定为一个图片链接ellipse.material //cesiumjs.org/tutorials/images/cats.jpg;在上述两种情况下在赋值时自动为我们创建一个ColorMaterialProperty属性或ImageMaterialProperty属性。对于更复杂的材料我们需要自己创建一个材料属性实例。目前实体形状和物体支持颜色、图像、棋盘、条纹和网格材料。棋盘ellipse.material new Cesium.CheckerboardMaterialProperty({evenColor : Cesium.Color.WHITE,oddColor : color.black - 这个网站可出售。 - 最佳的color 来源和相关信息。,repeat : new Cesium.Cartesian2(4, 4)});条纹ellipse.material new Cesium.StripeMaterialProperty({evenColor : Cesium.Color.WHITE,oddColor : color.black - 这个网站可出售。 - 最佳的color 来源和相关信息。,repeat : 32});网格ellipse.material new Cesium.GridMaterialProperty({color : Cesium.Color.YELLOW,cellAlpha : 0.2,lineCount : new Cesium.Cartesian2(8, 8),lineThickness : new Cesium.Cartesian2(2.0, 2.0)});轮廓与fill属性不同outline没有相应的材料而是依赖于两个独立的outlineColor和outlineWidth属性。outlineWidth只适用于非Windows系统如Android、iOS、Linux和OS X。这是由于WebGL是如何在Windows上的所有三个主要浏览器引擎中实现所限制的。ellipse.fill false;ellipse.outline true;ellipse.outlineColor Cesium.Color.YELLOW;ellipse.outlineWidth 2.0;折线折线是一种特殊情况因为它们没有填充或轮廓属性。相反他们依靠专门的材料来代替颜色。由于这些特殊材料不同宽度和轮廓宽度的折线将对所有系统起作用。var entity viewer.entities.add({polyline : {positions : Cesium.Cartesian3.fromDegreesArray([-77, 35,-77.1, 35]),width : 5,material : Cesium.Color.RED}});viewer.zoomTo(viewer.entities);var polyline entity.polyline // For upcoming examples折线轮廓polyline.material new Cesium.PolylineOutlineMaterialProperty({color : Cesium.Color.ORANGE,outlineWidth : 3,outlineColor : color.black - 这个网站可出售。 - 最佳的color 来源和相关信息。});折现光晕polyline.material new Cesium.PolylineGlowMaterialProperty({glowPower : 0.2,color : color.blue - 这个网站可出售。 - 最佳的color 来源和相关信息。});高度与挤压覆盖在地球上的所有形状当前是圆、椭圆、多边形和矩形也可以放置在海拔高度或挤压成一个物体。在这两种情况下形状或物体仍然符合其下方的地球曲率。对于高度我们所要做的就是在相应的图形对象上设置高度属性对于上面列出的所有形状都是一样的。这可能是提到Cesium总是使用米、弧度和秒作为单位的好时机除非函数明确地表示了其他情况比如Cartesian3.fromDegrees。下面的代码行将多边形提升到地球上方250000米处。wyoming.polygon.height 250000;将形状挤压成物体同样容易我们只需要设置extrudedHeight属性。物体将在height和extrudedHeight之间产生。如果height是undefined则物体从0开始。为了创造一个物体从200000米开始延伸到250000米我们可以使用下面的代码。这当然意味着物体本身是50000米高。wyoming.polygon.height 200000;wyoming.polygon.extrudedHeight 250000;Cesium中文网交流QQ群807482793Cesium中文网http://cesiumcn.org/ | 国内快速访问http://cesium.coinidea.com/