我试图将数千个点放在Cesium地图上并遇到Firefox崩溃的问题.我需要使用Firefox.地图似乎能够显示15,000个点(作为图像).但是,它几乎无法使用.缩放和平移有很大的延迟并最终崩溃.有谁知道限制应该多少点?此外,有没有更好的方式来显示这些点然后我这样做?我真的希望这是我,而不是铯.我听说创建czml然后传入它比较慢,所以我有以下javascript测试:
function test(){
for (var i=0; i<15000; i++){
tempLat +=1;
tempLon +=1;
if(tempLat>90){
tempLat=0;
tempLon=0;
}
addBillboard(scene, ellipsoid, tempLat,tempLon);
}
}
//this is from the sandcastle examples for cesium.
function addBillboard(scene, ellipsoid,tempLat,tempLon) {
var primitives = scene.primitives;
var image = new Image();
image.onload = function() {
var billboards = new Cesium.BillboardCollection();
var textureAtlas = scene.context.createTextureAtlas({image : image});
billboards.textureAtlas = textureAtlas;
billboard = billboards.add({
position : ellipsoid.cartographicToCartesian(Cesium.Cartographic.fromDegrees(tempLat, tempLon)),
imageIndex : 0
});
primitives.add(billboards);
};
image.src = '../images/Cesium_Logo_overlay.png';
}
Run Code Online (Sandbox Code Playgroud) 我正在使用铯:http : //cesiumjs.org/ ,我想让一些div浮在铯地图上,但我无法使其正常工作。
我在jsfiddle.net/j08691/dChUR/5/上尝试了以下容器/标签方法-用铯映射div替换图像-但它似乎不起作用-未显示“标签” div。
有什么帮助吗?
好的,第一次使用Cesium.我有一个简单的,非高级的问题,我在他们的表单上发布了几次,但没有人回应.所以我想我会在这里试试.
我需要做的就是弄清楚如何在调用另一个事件之前停止一个事件.这是一个正在发生的事情的例子.地球在用户连接上旋转,但如果他们点击"飞回家"等我需要它停止.
代码如下.
所以spinGlobe中的arg是spinRate.如果我在初始连接上传入0.0,它将不会旋转.完善.所以我觉得如果点击事件(用户点击飞回家),则调用spinGlobe(0.0)表示地球将停止旋转.但事实并非如此.我可以不动态更改spinRate吗?或者我这样做是错的?
spinGlobe( 0.5 )
function spinGlobe( dynamicRate )
var previousTime = Date.now();
viewer.clock.onTick.addEventListener(function( clock ) {
var spinRate = dynamicRate;
var currentTime = Date.now();
var delta = ( currentTime - previousTime ) / 1000;
previousTime = currentTime;
viewer.scene.camera.rotate(Cesium.Cartesian3.UNIT_Z, -spinRate * delta);
});
}
Run Code Online (Sandbox Code Playgroud) 我试图将图标显示为广告牌,并按距离缩放它。我可以进行很好的管理,但是一旦我通过CZML而不是直接在JS中加载广告牌,就无法获得调整广告牌大小的功能。
在我的JS文件中,我有:
var czmlDataSource = new Cesium.CzmlDataSource();
czmlDataSource.loadUrl('airports.czml');
viewer.dataSources.add(czmlDataSource);
Run Code Online (Sandbox Code Playgroud)
我的CZML文件显示:
[
{
"id":"document",
"version":"1.0"
},
{
"id":"test",
"billboard":{
"image":"airport.png",
"verticalOrigin":"BOTTOM",
"show":true
},
"position":{
"cartographicDegrees":[
0.055278, 51.505278, 0
]
}
}
]
Run Code Online (Sandbox Code Playgroud)
在我使用这个之前:
entity.billboard.scaleByDistance = new Cesium.ConstantProperty(new Cesium.NearFarScalar(1.5e3, 0.3, 3.5e5, 0.0));
Run Code Online (Sandbox Code Playgroud)
显然,这现在行不通。但是我找不到一种方法来获取广告牌的ID并使用scaleByDistance。
我想在一个cesiumjs查看器中显示多个数据源,但需要允许用户选择他们希望在任何给定时间看到的数据源。例如,如果我加载kml和czml文件,如何隐藏一个文件并显示另一个文件?我找不到使用它的API的cesiumjs方法。
我正在使用CesuimJS(http://cesiumjs.org/)呈现地图。我想截取部分地图的屏幕截图。
我尝试使用Three.js(http://learningthreejs.com/blog/2011/09/03/screenshot-in-javascript/),但是无法截图
有任何想法吗?
我的页面上有两个实体;卫星及其“地面位置”,随着时间的推移,它们都会在铯中移动。我想用一条随它们一起移动的直线将两者连接起来。
该CZML魅力似乎如果您使用的是CZML文件演示了类似的功能,但我想知道如何在代码中做到这一点。他们的演示在卫星和地面位置之间包含多条线,并且实际上,他们向前走了一步,仅在不与地球相交的情况下(如果两个实体之间存在视线)显示该线。我不需要那么花哨的东西。
有没有很好的例子,或者有人可以指出我的文档?谢谢!
我尝试使用热版本运行我的项目(使用正常版本执行相同的操作)并且它给了我这个错误:
Project is running at http://localhost:8080/
webpack output is served from /
Content not from webpack is served from C:\projects\Web Network Analysis\public\src
Hash: 94a02afbd667b1bea74c
Version: webpack 2.2.1
Time: 3694ms
Asset Size Chunks Chunk Names
client.min.js 3.17 MB 0 [emitted] [big] main
chunk {0} client.min.js (main) 1.15 MB [entry] [rendered]
[10] ./~/react/react.js 56 bytes {0} [built]
[122] ./~/react-router/es/index.js 1.46 kB {0} [built]
[144] (webpack)/hot/emitter.js 77 bytes {0} [built]
[145] ./js/client.js 940 bytes {0} [built]
[146] (webpack)-dev-server/client?http://localhost:8080 5.28 kB {0} [built]
[147] …Run Code Online (Sandbox Code Playgroud) 我使用该Cesium Earth库开发了一个应用程序.
问题是,绘制的线(实体路径)具有非常低的质量,它不是平滑的.如何让它变得更好?
viewer = new Cesium.Viewer('cesiumContainer', {
imageryProvider: false,
shadows:true,
skyAtmosphere: false,
geocoder: false,
shouldAnimate:true,
clockViewModel: new Cesium.ClockViewModel(clock),
imageryProviderViewModels: imageryViewModels,
requestRenderMode : true
});
entity[i] = viewer.entities.add({
path:{
leadTime:leadTime,
trailTime:trailTime,
width:1.5,
material: color,
resolution:10
}
});
satellite[id].position.setInterpolationOptions({
interpolationDegree : 10,
interpolationAlgorithm : Cesium.HermitePolynomialApproximation
});
Run Code Online (Sandbox Code Playgroud)