admin

第 1 位会员

管理员
个人信息
  • 加入于 2018-06-21 23:46:36
  • 最后登录时间 4个月前
个人成就
  • 发表文章次数 217
  • 发布回复次数 1521
  • 个人主页浏览次数 321
Cesium有没有提供方法判断当前的经纬度内有没有entity或者primitive?5年前

转自网友: 有一个取巧的办法,获取地表高度和获取模型高度,保留一位小数,一致就是没有模型

倾斜摄影和BIM 等模型有啥区别5年前

倾斜摄影LOD1

BIM LOD 5+

cesium球事件5年前

@c_yang #3楼 再底层的只能去改框架源码了

cesium加载大量模型,viewer.entities和primitives.add哪种方式更快5年前

primitives.add 官网上多个加载模型的时候用的就是这个

cesium球事件5年前

可以改啊 /topic/7.html

怎么给Cesium添加点光和给点光添加颜色啊5年前

/topic/275.html

跟这个问题是类似的,不过好像只有一个光源就是太阳,不支持别的光源,要添加也只能添加粒子系统。

cesium中生成加载几万个entity,速度慢,怎么优化5年前

  1. 几万个entity,如果不小的化,肯定会卡的
  2. 硬件加内存,加显卡,加cpu
  3. 可以做视窗裁剪,模型优化等

Cesium加载3DTile模型奔溃5年前

我在iPad和iPhone上也有同样的问题,怀疑还是内存过大导致的

加载的geojson后 如何判断经纬度在多边形里5年前

这是一个数学问题,给定(x,y),求是否在一个多边形里面。

为什么entity加载的模型有偏移呀,怎么解决5年前

@ysak11 #2楼

你都模型是不是有问题啊,其实模型自己也会带一个xyz的,然后模型的基准点可能有问题,因为模型比较大,不是一个点。

为什么entity加载的模型有偏移呀,怎么解决5年前

我怀疑,仅仅是怀疑,肯能不是你模型的位置不对,而是你的地图坐标系的问题?比如纠偏?

cesium加载kmz5年前

高亮的话一般是改颜色就好了 3D Tiles我这边有比较完整的实现

[Cesium中文网]可视分析专题5年前

基于Cesium的简单可视域分析 https://blog.csdn.net/fengyekafei/article/details/90212714?tdsourcetag=s_pcqq_aiomsg

源代码如下:

// 加载3dtile模型
var tileset = new Cesium.Cesium3DTileset({
	url: ''
});
viewer.scene.primitives.add(tileset);
 
// 观察点
var viewPoint = Cesium.Cartesian3.fromDegrees(114.46430512179235, 30.436947239947525, 100);
 
// 世界坐标转换为投影坐标
var webMercatorProjection = new Cesium.WebMercatorProjection(viewer.scene.globe.ellipsoid);
var viewPointWebMercator = webMercatorProjection.project(Cesium.Cartographic.fromCartesian(viewPoint));
 
// 目标点集合
var destPoints = [];
 
// 观察点和目标点的距离
var radius = 1000; // 视距1000米
 
// 计算45°和135°之间的目标点
for (var i = 45; i <= 135; i++) {
	// 度数转弧度
	var radians = Cesium.Math.toRadians(i);
	// 计算目标点
	var toPoint = new Cesium.Cartesian3(viewPointWebMercator.x + radius * Math.cos(radians), viewPointWebMercator.y + radius * Math.sin(radians), 30);
	// 投影坐标转世界坐标
	toPoint = webMercatorProjection.unproject(toPoint);
	destPoints.push(Cesium.Cartographic.toCartesian(toPoint.clone()));
}
 
// 绘制线
function drawLine(leftPoint, secPoint, color) {
	viewer.entities.add({
		polyline: {
			positions: [leftPoint, secPoint],
			arcType: Cesium.ArcType.NONE,
			width: 5,
			material: color,
			depthFailMaterial: color
		}
	})
}
 
// 一定要等3dtile模型加载完成后执行
setTimeOut(function(){
	pickFromRay();
}, 2000)
 
function pickFromRay() {
	for (var i = 0; i < destPoints.length; i++) {
		// 计算射线的方向,目标点left 视域点right
		var direction = Cesium.Cartesian3.normalize(Cesium.Cartesian3.subtract(destPoints[i], viewPoint, new Cesium.Cartesian3()), new Cesium.Cartesian3());
		// 建立射线
		var ray = new Cesium.Ray(viewPoint, direction);
		var result = viewer.scene.pickFromRay(ray, objectsToExclude); // 计算交互点,返回第一个
		showIntersection(result, destPoints[i], viewPoint);
	}
}
 
// 处理交互点
function showIntersection(result, destPoint, viewPoint) {
	// 如果是场景模型的交互点,排除交互点是地球表面
	if (Cesium.defined(result) && Cesium.defined(result.object)) {
		drawLine(result.position, viewPoint, Cesium.Color.GREEN); // 可视区域
		drawLine(result.position, destPoint, Cesium.Color.RED); // 不可视区域
	} else {
		drawLine(viewPoint, destPoint, Cesium.Color.GREEN);
	}
}

原文效果图:

cesium 的VR模式,支持HTC VIVE?5年前

@jerry #3楼 有的,github搜一搜

求教,按线路飞行如何以第一视角方式飞行?5年前

@tinglizi #12楼

这是一个向量运算的问题吧,最开的时候您的飞机头的朝向你应该知道的,路线如果您自己制定的,怎么拐弯你也知道,你就按向量来计算。

Your Site Analytics