Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity 铯获取要比较的拾取实体的颜色_Entity_Cesium_Picking - Fatal编程技术网

Entity 铯获取要比较的拾取实体的颜色

Entity 铯获取要比较的拾取实体的颜色,entity,cesium,picking,Entity,Cesium,Picking,有什么方法可以得到铯原子上被挑选的实体的颜色吗 基本上,我需要检查单击实体的颜色,如果是蓝色,则将其更改为红色,反之亦然 有没有办法做到这一点?提前感谢。是的,有一些警告:首先,铯原子本身没有颜色。它可以有一个点,该点可以有一个颜色和一个大纲颜色,也可以有一个带有自己颜色的标签,等等 其次,铯的性质都可以是时间动态的或恒定的。因此,当您“获取”一个实体属性(如点颜色)时,通常应传入viewer.clock.currentTime以在特定时间获取该属性。如果你确定你得到的财产是a而不是a或a,这并

有什么方法可以得到铯原子上被挑选的实体的颜色吗

基本上,我需要检查单击实体的颜色,如果是蓝色,则将其更改为红色,反之亦然


有没有办法做到这一点?提前感谢。

是的,有一些警告:首先,铯原子本身没有颜色。它可以有一个点,该点可以有一个
颜色
和一个
大纲颜色
,也可以有一个带有自己颜色的标签,等等

其次,铯的性质都可以是时间动态的或恒定的。因此,当您“获取”一个实体属性(如点颜色)时,通常应传入
viewer.clock.currentTime
以在特定时间获取该属性。如果你确定你得到的财产是a而不是a或a,这并不重要

对于下面的演示,我隐式地为所有颜色和属性使用ConstantProperty。我还抑制了“SelectionIndicator”(单击实体时通常出现的绿色框),因为这种情况下它看起来很奇怪

我正在使用
selectedEntityChanged
事件来指示点何时应从蓝色变为红色或向后。
selectedEntityChanged
事件是本月(2017年3月)发布的铯1.31中的新事件。如果您有一个旧版本并且无法升级,那么有一个旧版本的解决方案,我可以在需要时发布

var-viewer=新铯.viewer('cesiumContainer'{
//关闭导航帮助和我们不使用的东西。
导航说明SinitallyVisible:false,动画:false,时间线:false,
//(可选)可以关闭绿色选择框,如下所示:
selectionIndicator:false,
//接下来的6行只是为了避免堆栈代码段错误消息。
imageryProvider:Cesium.createTileMapServiceImageryProvider({
url:Cesium.buildModuleUrl('Assets/Textures/NaturalEarthII')
}),
baseLayerPicker:错误,
地理编码员:错,
信息框:false
});
变量点=[
{lon:-75,lat:40},
{lon:-95,lat:40},
{lon:-115,lat:40},
{lon:-75,lat:30},
{lon:-95,lat:30},
{lon:-115,lat:30},
{lon:-85,lat:20},
{lon:-105,lat:20}
];
dots.forEach(函数(dot){
viewer.entities.add({
位置:铯。笛卡尔3。从度(点长,点长),
要点:{
像素大小:7,
颜色:铯。颜色。钢蓝色,
大纲颜色:铯。颜色。黑色,
大纲宽度:1.0
}
});
});
viewer.selectedEntityChanged.addEventListener(函数(实体){
//检查是否选择了具有点颜色的图元。
if(铯定义(实体)&&
定义铯(实体点)&&
铯.定义(实体.点.颜色)){
//获取当前颜色
var color=entity.point.color.getValue(viewer.clock.currentTime);
//蓝色测试
if(铯颜色等于(颜色,铯颜色钢蓝)){
//设置为红色
entity.point.color=铯.color.RED;
}
//红色测试
else if(铯.颜色.等于(颜色,铯.颜色.红色)){
//设置为红色
entity.point.color=铯.color.STEELBLUE;
}
}
});
html,body,#cesiumContainer{
宽度:100%;高度:100%;边距:0;填充:0;溢出:隐藏;
字体系列:无衬线;
}
#信息{
位置:绝对位置;
顶部:4px;左侧:5px;颜色:#edffff;
}

单击点可更改其颜色。