4 votos

Añadir etiquetas en cesio

He probado a añadir etiquetas a mi aplicación de cesio utilizando el siguiente código

var entities3 = dataSource3.entities.values;

    var colorHash = {};
    for (var i = 0; i < entities3.length; i++) {
        var entity = entities3[i];
        var label;
        var name = entity.properties.Height;
        var color = colorHash[name];
        if (!color) {
            color = Cesium.Color.BROWN; 
            colorHash[name] = color;
        }
        entity.polygon.extrudedHeight = entity.properties.Height;
        label = {
            text: entity.properties.Name,
            font : '12px Helvetica',
            fillColor : Cesium.Color.WHITE,
            outlineColor : Cesium.Color.BLACK,
            outlineWidth : 4,
            style : Cesium.LabelStyle.FILL_AND_OUTLINE,
            verticalOrigin : Cesium.VerticalOrigin.BOTTOM,
            pixelOffset : new Cesium.Cartesian2(0, -9)
        };
        entity.label = label;
    }

Pero no aparece ninguna etiqueta.

3voto

flooted Puntos 113

En primer lugar, no hay entity.properties en un Cesium.Entity construido. Si busca datos en bruto que inyectó en su CZML de alguna manera, tendrá que sacar esos datos antes de convertir el CZML en Entidades reales.

Más allá de eso, su principal problema parece ser esta línea:

    entity.label = label;

Debe ser una instancia de LabelGraphics, así:

    entity.label = new Cesium.LabelGraphics(label);

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X