Entity type

Hi,

I am parsing all entities that I added to my viewer, I have polylines and billboards.

I am trying to update their location dynamically and I have a different update method for polylines and for billboards.

I need to find out whether this entity is a billboard or polyline and to send it to the relevant method.

How to I find out what entity type it is?

Thanks.

Hello,

Check Cesium.defined(entity.billboard). This will be true if the entity has a billboard.

Checking Cesium.defined(entity.polyline) will be true if it has a polyline.

Best,

Hannah

Thanks Hanna.
I will use it tommorow at the office.

Hi Hannah,

For some reason I always get true even though it is a polyline and has no billboard.

Here is my code:

var currentEntities = myviewer.entities;

var i;
var j;
for (i = 0; i < reflectedEntityList.array.length; i++) {
var exist = false;
for (j = 0; j < currentEntities._entities._array.length; j++) {
/if equal update/
if(currentEntities._entities._array[j]._id === reflectedEntityList.array[i].esr.marking)
{
console.log("billboard defined = "+ Cesium.defined(currentEntities.values[j].billboard ));
console.log("polyline defined = "+ Cesium.defined(currentEntities.values[j].polyline ));
if(!Cesium.defined(currentEntities._entities._array[j].billboard)){
updateLine(currentEntities._entities._array[j],reflectedEntityList.array[i].esr);
}
else {
updateLocation(currentEntities._entities._array[j],reflectedEntityList.array[i].esr);
}
exist = true;
}
}
if (!exist) {
createEntities(reflectedEntityList.array[i].esr);
}

}

every entity I am checking returns true.

Any idea?

Hello,

As a general rule, you should never access private variables (variables starting with an _). Working with these values can have unexpected side effects. Try something like this instead:

for (var i = 0; i < viewer.entities.values.length; i++) {
var entity = viewer.entities.values[i];
var isPolyline = Cesium.defined(entity.polyline);

}

``

Best,

Hannah