SuperMap iClient3D 11i(2023) SP1 for Cesium 调整

SuperMap iClient3D 11i(2023) SP1 for Cesium 最新版本

下载地址 SuperMap技术资源中心|为您提供全面的在线技术服务

每一次版本升级,都要对代码进行修改调整,都是为了解决功能需求。当然,也为产品做了小白鼠测试,发现bug,优化功能。

由于前端开发使用的是dojo框架,类似于require amd模块化设计。需要对Cesium.js分拆独立使用,做以下调整。

1.定义变量

var SatelliteToolkit,html2canvas;

2.修改默认图标和链接

var e=o$12("Assets/Images/logo.png");f$l=new i$17('<a href="http://www.xxx.com" target="_blank"><img src="'+e+'" title="SmartGIS"/></a>',!0)


3.修改地图标绘方法,扩展带token
(1)graphicObject.json

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,需要准备好S3M模型和索菲亚大教堂的位置坐标信息。 然后,在SuperMap iClient3D 11i(2022) for Cesium中创建DynamicLayer3D图层,并将S3M模型添加到该图层中。代码示例如下: ```javascript var dynamicLayer = new SuperMap.Web.iServerJava6R.DynamicLayer3D("dynamic_layer"); var modelUrl = "http://localhost:8090/iserver/services/3D-CityScenes/rest/realspace"; var modelName = "model.s3m"; var modelPath = modelUrl + "/datas/" + modelName; var modelOption = new SuperMap.Web.iServerJava6R.ModelOption3D(modelPath); var model = new SuperMap.Web.iServerJava6R.Model3D(modelOption); dynamicLayer.addModel(model); ``` 然后,在Cesium中创建飞行路径,并使用Cesium的Camera API实现飞行效果。代码示例如下: ```javascript var viewer = new Cesium.Viewer("cesiumContainer"); var sofiaPosition = Cesium.Cartesian3.fromDegrees(23.727538, 42.695432, 100); viewer.camera.setView({ destination : sofiaPosition, orientation: { heading : Cesium.Math.toRadians(0), pitch : Cesium.Math.toRadians(-45), roll : 0.0 } }); var positions = [ Cesium.Cartesian3.fromDegrees(23.727538, 42.695432, 5000), Cesium.Cartesian3.fromDegrees(23.727538, 42.695432, 2000), Cesium.Cartesian3.fromDegrees(23.727538, 42.695432, 5000), Cesium.Cartesian3.fromDegrees(23.727538, 42.695432, 2000) ]; var flight = Cesium.CameraFlightPath.createAnimationCartesian(viewer, { destinations : positions, duration: 3.0, loop: true, orientation : { duration: 3.0, heading : Cesium.Math.toRadians(0), pitch : Cesium.Math.toRadians(-45), roll : 0.0 } }); viewer.timeline.add(flight); viewer.scene.preRender.addEventListener(function(scene, time) { var position = flight.update(time); if (position) { viewer.camera.setView({ destination : position, orientation: flight.endOrientation }); } }); ``` 最后,将DynamicLayer3D图层添加到Cesium的场景中,并启动Cesium的渲染循环。代码示例如下: ```javascript viewer.scene.primitives.add(dynamicLayer); viewer.clock.onTick.addEventListener(function(clock) { dynamicLayer.refresh(); }); viewer.render(); ``` 这样就可以实现将S3M模型绕索菲亚大教堂循环飞行的效果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一醉千秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值