Search in sources :

Example 31 with EntityOptions

use of org.cesiumjs.cs.datasources.options.EntityOptions in project gwt-cs by iSergio.

the class HeadingPitchRoll method buildPanel.

@Override
public void buildPanel() {
    ViewerPanel csVPanel = new ViewerPanel();
    pathPosition = new SampledPositionProperty();
    PathGraphicsOptions pathGraphicsOptions = new PathGraphicsOptions();
    pathGraphicsOptions.show = new ConstantProperty<>(true);
    pathGraphicsOptions.leadTime = new ConstantProperty<>(0);
    pathGraphicsOptions.trailTime = new ConstantProperty<>(60);
    pathGraphicsOptions.width = new ConstantProperty<>(10);
    pathGraphicsOptions.resolution = new ConstantProperty<>(1);
    pathGraphicsOptions.material = PolylineGlowMaterialProperty.create(Color.PALEGOLDENROD(), 0.3);
    EntityOptions entityOptions = new EntityOptions();
    entityOptions.position = pathPosition;
    entityOptions.name = "path";
    entityOptions.path = new PathGraphics(pathGraphicsOptions);
    Entity entityPath = csVPanel.getViewer().entities().add(entityOptions);
    final org.cesiumjs.cs.scene.Camera camera = csVPanel.getViewer().camera;
    final ScreenSpaceCameraController controller = csVPanel.getViewer().scene().screenSpaceCameraController();
    final Cartesian3 center = new Cartesian3();
    final org.cesiumjs.cs.core.HeadingPitchRoll hpRoll = new org.cesiumjs.cs.core.HeadingPitchRoll();
    final HeadingPitchRange hpRange = new HeadingPitchRange();
    position = Cartesian3.fromDegrees(-123.0744619, 44.0503706, 5000.0);
    speedVector = new Cartesian3();
    final Transforms.LocalFrameToFixedFrame fixedFrameTransform = Transforms.localFrameToFixedFrameGenerator("north", "west");
    FromGltfOptions fromGltfOptions = new FromGltfOptions();
    fromGltfOptions.url = GWT.getModuleBaseURL() + "SampleData/models/CesiumAir/Cesium_Air.glb";
    // , fixedFrameTransform);
    fromGltfOptions.modelMatrix = Transforms.headingPitchRollToFixedFrame(position, hpRoll, Ellipsoid.WGS84());
    fromGltfOptions.minimumPixelSize = 128;
    planePrimitive = (Model) csVPanel.getViewer().scene().primitives().add(Model.fromGltf(fromGltfOptions));
    planePrimitive.readyPromise().then(new Fulfill<Model>() {

        @Override
        public void onFulfilled(Model model) {
            ModelAnimationOptions modelAnimationOptions = new ModelAnimationOptions();
            modelAnimationOptions.speedup = 0.5;
            modelAnimationOptions.loop = ModelAnimationLoop.REPEAT();
            model.activeAnimations.addAll(modelAnimationOptions);
            // Zoom to model
            r = 2.0 * max(model.boundingSphere().radius, ((PerspectiveFrustum) camera.frustum).near);
            controller.minimumZoomDistance = r * 0.5;
            Matrix4.multiplyByPoint(model.modelMatrix, model.boundingSphere().center, center);
            double heading = Math.toRadians(230.0);
            double pitch = Math.toRadians(-20.0);
            hpRange.heading = heading;
            hpRange.pitch = pitch;
            hpRange.range = r * 50.0;
            camera.lookAt(center, hpRange);
        }
    });
    fromBehind = new CheckBox();
    fromBehind.getElement().getStyle().setColor("white");
    fromBehind.setWidth("100px");
    fromBehind.setValue(false);
    final com.google.gwt.user.client.ui.Label headingLabel = new Label();
    headingLabel.getElement().getStyle().setColor("white");
    headingLabel.setText("Heading:°");
    final com.google.gwt.user.client.ui.Label pitchLabel = new Label();
    pitchLabel.getElement().getStyle().setColor("white");
    pitchLabel.setText("Pitch:°");
    final com.google.gwt.user.client.ui.Label rollLabel = new Label();
    rollLabel.getElement().getStyle().setColor("white");
    rollLabel.setText("Roll:°");
    final com.google.gwt.user.client.ui.Label speedLabel = new Label();
    speedLabel.getElement().getStyle().setColor("white");
    speedLabel.setText("Speed:m/s");
    FlexTable flexTable = new FlexTable();
    flexTable.setWidget(0, 0, headingLabel);
    flexTable.setHTML(1, 0, "<font color=\"white\">← to left/→ to right</font>");
    flexTable.setWidget(2, 0, pitchLabel);
    flexTable.setHTML(3, 0, "<font color=\"white\">↑ to up/↓ to down</font>");
    flexTable.setWidget(4, 0, rollLabel);
    flexTable.setHTML(5, 0, "<font color=\"white\">← + ⇧ left/→ + ⇧ right</font>");
    flexTable.setWidget(6, 0, speedLabel);
    flexTable.setHTML(7, 0, "<font color=\"white\">↑ + ⇧ to speed up/↓ + ⇧ to speed down</font>");
    flexTable.setHTML(8, 0, "<font color=\"white\">Following aircraft</font>");
    flexTable.setWidget(8, 1, fromBehind);
    AbsolutePanel aPanel = new AbsolutePanel();
    aPanel.add(csVPanel);
    aPanel.add(flexTable, 20, 20);
    contentPanel.add(new HTML("<p>Click on the 3D window then use the keyboard to change settings.</p>"));
    contentPanel.add(aPanel);
    csVPanel.getViewer().scene().preRender().addEventListener(new Scene.Listener() {

        @Override
        public void function(Scene scene, JulianDate time) {
            headingLabel.setText("Heading:" + Math.toDegrees(hpRoll.heading) + "°");
            pitchLabel.setText("Pitch:" + Math.toDegrees(hpRoll.pitch) + "°");
            rollLabel.setText("Roll:" + Math.toDegrees(hpRoll.roll) + "°");
            speedLabel.setText("Speed:" + speed + "m/s");
            speedVector = Cartesian3.multiplyByScalar(Cartesian3.UNIT_X(), speed / 10, speedVector);
            position = Matrix4.multiplyByPoint(planePrimitive.modelMatrix, speedVector, position);
            pathPosition.addSample(JulianDate.now(), position);
            Transforms.headingPitchRollToFixedFrame(position, hpRoll, Ellipsoid.WGS84(), fixedFrameTransform, planePrimitive.modelMatrix);
            if (fromBehind.getValue()) {
                // Zoom to model
                Matrix4.multiplyByPoint(planePrimitive.modelMatrix, planePrimitive.boundingSphere().center, center);
                hpRange.heading = hpRoll.heading;
                hpRange.pitch = hpRoll.pitch;
                camera.lookAt(center, hpRange);
            }
        }
    });
    RootPanel.get().addDomHandler(new KeyDownHandler() {

        @Override
        public void onKeyDown(KeyDownEvent keyDownEvent) {
            switch(keyDownEvent.getNativeKeyCode()) {
                case 40:
                    if (keyDownEvent.getNativeEvent().getShiftKey()) {
                        speed = max(--speed, 1);
                    } else {
                        hpRoll.pitch -= deltaRadians;
                        if (hpRoll.pitch < -Math.TWO_PI()) {
                            hpRoll.pitch += Math.TWO_PI();
                        }
                    }
                    break;
                case 38:
                    if (keyDownEvent.getNativeEvent().getShiftKey()) {
                        // speed up
                        speed = min(++speed, 100);
                    } else {
                        // pitch up
                        hpRoll.pitch += deltaRadians;
                        if (hpRoll.pitch > Math.TWO_PI()) {
                            hpRoll.pitch -= Math.TWO_PI();
                        }
                    }
                    break;
                case 39:
                    if (keyDownEvent.getNativeEvent().getShiftKey()) {
                        // roll right
                        hpRoll.roll += deltaRadians;
                        if (hpRoll.roll > Math.TWO_PI()) {
                            hpRoll.roll -= Math.TWO_PI();
                        }
                    } else {
                        // turn right
                        hpRoll.heading += deltaRadians;
                        if (hpRoll.heading > Math.TWO_PI()) {
                            hpRoll.heading -= Math.TWO_PI();
                        }
                    }
                    break;
                case 37:
                    if (keyDownEvent.getNativeEvent().getShiftKey()) {
                        // roll left until
                        hpRoll.roll -= deltaRadians;
                        if (hpRoll.roll < 0.0) {
                            hpRoll.roll += Math.TWO_PI();
                        }
                    } else {
                        // turn left
                        hpRoll.heading -= deltaRadians;
                        if (hpRoll.heading < 0.0) {
                            hpRoll.heading += Math.TWO_PI();
                        }
                    }
                    break;
                default:
                    break;
            }
        }
    }, KeyDownEvent.getType());
    initWidget(contentPanel);
}
Also used : Entity(org.cesiumjs.cs.datasources.Entity) FromGltfOptions(org.cesiumjs.cs.scene.options.FromGltfOptions) KeyDownHandler(com.google.gwt.event.dom.client.KeyDownHandler) EntityOptions(org.cesiumjs.cs.datasources.options.EntityOptions) KeyDownEvent(com.google.gwt.event.dom.client.KeyDownEvent) com.google.gwt.user.client.ui(com.google.gwt.user.client.ui) SampledPositionProperty(org.cesiumjs.cs.datasources.properties.SampledPositionProperty) ViewerPanel(org.cesiumjs.cs.widgets.ViewerPanel) ModelAnimationOptions(org.cesiumjs.cs.scene.options.ModelAnimationOptions) PathGraphics(org.cesiumjs.cs.datasources.graphics.PathGraphics) Scene(org.cesiumjs.cs.scene.Scene) PathGraphicsOptions(org.cesiumjs.cs.datasources.graphics.options.PathGraphicsOptions) PathGraphics(org.cesiumjs.cs.datasources.graphics.PathGraphics) org.cesiumjs.cs.core(org.cesiumjs.cs.core) Model(org.cesiumjs.cs.scene.Model) ScreenSpaceCameraController(org.cesiumjs.cs.scene.ScreenSpaceCameraController)

Example 32 with EntityOptions

use of org.cesiumjs.cs.datasources.options.EntityOptions in project gwt-cs by iSergio.

the class Interpolation method buildPanel.

@Override
public void buildPanel() {
    csVPanel = new ViewerPanel();
    csVPanel.getViewer().scene().globe.enableLighting = false;
    CesiumTerrainProviderOptions cesiumTerrainProviderOptions = new CesiumTerrainProviderOptions();
    cesiumTerrainProviderOptions.url = "https://assets.agi.com/stk-terrain/world";
    cesiumTerrainProviderOptions.requestWaterMask = true;
    cesiumTerrainProviderOptions.requestVertexNormals = true;
    csVPanel.getViewer().terrainProvider = new CesiumTerrainProvider(cesiumTerrainProviderOptions);
    csVPanel.getViewer().scene().globe.depthTestAgainstTerrain = true;
    Math.setRandomNumberSeed(3);
    _start = JulianDate.fromDate(new JsDate(2015, 2, 25, 16));
    _stop = JulianDate.addSeconds(_start, 360, new JulianDate());
    csVPanel.getViewer().clock().startTime = _start.clone();
    csVPanel.getViewer().clock().stopTime = _stop.clone();
    csVPanel.getViewer().clock().currentTime = _start.clone();
    csVPanel.getViewer().clock().clockRange = ClockRange.LOOP_STOP();
    csVPanel.getViewer().clock().multiplier = 10;
    csVPanel.getViewer().timeline().zoomTo(_start, _stop);
    PositionProperty position = computeCirclularFlight(-112.110693, 36.0994841, 0.03);
    TimeIntervalOptions timeIntervalOptions = new TimeIntervalOptions();
    timeIntervalOptions.start = _start;
    timeIntervalOptions.stop = _stop;
    ModelGraphicsOptions modelGraphicsOptions = new ModelGraphicsOptions();
    modelGraphicsOptions.uri = new ConstantProperty<>(GWT.getModuleBaseURL() + "SampleData/models/CesiumAir/Cesium_Air.gltf");
    modelGraphicsOptions.minimumPixelSize = new ConstantProperty<>(64);
    PolylineGlowMaterialPropertyOptions polylineGlowMaterialPropertyOptions = new PolylineGlowMaterialPropertyOptions();
    polylineGlowMaterialPropertyOptions.glowPower = new ConstantProperty<>(0.1);
    polylineGlowMaterialPropertyOptions.color = new ConstantProperty<>(Color.YELLOW());
    PathGraphicsOptions pathGraphicsOptions = new PathGraphicsOptions();
    pathGraphicsOptions.resolution = new ConstantProperty<>(1);
    pathGraphicsOptions.material = new PolylineGlowMaterialProperty(polylineGlowMaterialPropertyOptions);
    pathGraphicsOptions.width = new ConstantProperty<>(10);
    EntityOptions entityOptions = new EntityOptions();
    entityOptions.availability = new TimeIntervalCollection(new TimeInterval[] { new TimeInterval(timeIntervalOptions) });
    entityOptions.position = position;
    entityOptions.orientation = new VelocityOrientationProperty(position);
    entityOptions.model = new ModelGraphics(modelGraphicsOptions);
    entityOptions.path = new PathGraphics(pathGraphicsOptions);
    _entity = csVPanel.getViewer().entities().add(entityOptions);
    ListBox interpolationsLBox = new ListBox();
    interpolationsLBox.addItem("Interpolation: Linear Approximation", "0");
    interpolationsLBox.addItem("Interpolation: Lagrange Polynomial Approximation", "1");
    interpolationsLBox.addItem("Interpolation: Hermite Polynomial Approximation", "2");
    interpolationsLBox.addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent changeEvent) {
            ListBox source = (ListBox) changeEvent.getSource();
            SampledPropertyInterpolationOptions sampledPropertyInterpolationOptions = new SampledPropertyInterpolationOptions();
            switch(source.getSelectedValue()) {
                case "0":
                    sampledPropertyInterpolationOptions.interpolationDegree = 1;
                    sampledPropertyInterpolationOptions.interpolationAlgorithm = LinearApproximation.instance();
                    ((SampledPositionProperty) _entity.position).setInterpolationOptions(sampledPropertyInterpolationOptions);
                    break;
                case "1":
                    sampledPropertyInterpolationOptions.interpolationDegree = 5;
                    sampledPropertyInterpolationOptions.interpolationAlgorithm = LagrangePolynomialApproximation.instance();
                    ((SampledPositionProperty) _entity.position).setInterpolationOptions(sampledPropertyInterpolationOptions);
                    break;
                case "2":
                    sampledPropertyInterpolationOptions.interpolationDegree = 2;
                    sampledPropertyInterpolationOptions.interpolationAlgorithm = HermitePolynomialApproximation.instance();
                    ((SampledPositionProperty) _entity.position).setInterpolationOptions(sampledPropertyInterpolationOptions);
                    break;
                default:
                    break;
            }
        }
    });
    Button viewTopDownBtn = new Button("View Top Down");
    viewTopDownBtn.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent clickEvent) {
            Viewer viewer = csVPanel.getViewer();
            viewer.trackedEntity = (Entity) JsObject.undefined();
            viewer.zoomTo(viewer.entities(), new HeadingPitchRange(0, Math.toRadians(-90), 0));
        }
    });
    Button viewSideBtn = new Button("View Side");
    viewSideBtn.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent clickEvent) {
            Viewer viewer = csVPanel.getViewer();
            viewer.trackedEntity = (Entity) JsObject.undefined();
            viewer.zoomTo(viewer.entities(), new HeadingPitchRange(Math.toRadians(-90), Math.toRadians(-15), 7500.0));
        }
    });
    Button viewAircraftBtn = new Button("View Aircraft");
    viewAircraftBtn.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent clickEvent) {
            Viewer viewer = csVPanel.getViewer();
            viewer.trackedEntity = _entity;
        }
    });
    HorizontalPanel btnHPanel = new HorizontalPanel();
    btnHPanel.setSpacing(5);
    btnHPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    btnHPanel.add(interpolationsLBox);
    btnHPanel.add(viewTopDownBtn);
    btnHPanel.add(viewSideBtn);
    btnHPanel.add(viewAircraftBtn);
    AbsolutePanel aPanel = new AbsolutePanel();
    aPanel.add(csVPanel);
    aPanel.add(btnHPanel, 20, 20);
    contentPanel.add(new HTML("<p>This example shows simple Cesium application</p>"));
    contentPanel.add(aPanel);
    initWidget(contentPanel);
}
Also used : CesiumTerrainProviderOptions(org.cesiumjs.cs.core.providers.options.CesiumTerrainProviderOptions) Entity(org.cesiumjs.cs.datasources.Entity) SampledPropertyInterpolationOptions(org.cesiumjs.cs.datasources.properties.options.SampledPropertyInterpolationOptions) PolylineGlowMaterialPropertyOptions(org.cesiumjs.cs.datasources.properties.options.PolylineGlowMaterialPropertyOptions) ClickEvent(com.google.gwt.event.dom.client.ClickEvent) Viewer(org.cesiumjs.cs.widgets.Viewer) JsDate(org.cesiumjs.cs.js.JsDate) ModelGraphics(org.cesiumjs.cs.datasources.graphics.ModelGraphics) EntityOptions(org.cesiumjs.cs.datasources.options.EntityOptions) ChangeHandler(com.google.gwt.event.dom.client.ChangeHandler) CesiumTerrainProvider(org.cesiumjs.cs.core.providers.CesiumTerrainProvider) ViewerPanel(org.cesiumjs.cs.widgets.ViewerPanel) TimeIntervalOptions(org.cesiumjs.cs.core.options.TimeIntervalOptions) TimeIntervalCollection(org.cesiumjs.cs.collections.TimeIntervalCollection) PathGraphics(org.cesiumjs.cs.datasources.graphics.PathGraphics) PathGraphicsOptions(org.cesiumjs.cs.datasources.graphics.options.PathGraphicsOptions) ModelGraphicsOptions(org.cesiumjs.cs.datasources.graphics.options.ModelGraphicsOptions) ClickHandler(com.google.gwt.event.dom.client.ClickHandler) ChangeEvent(com.google.gwt.event.dom.client.ChangeEvent)

Example 33 with EntityOptions

use of org.cesiumjs.cs.datasources.options.EntityOptions in project gwt-cs by iSergio.

the class Interpolation method computeCirclularFlight.

private PositionProperty computeCirclularFlight(double lon, double lat, double radius) {
    SampledPositionProperty property = new SampledPositionProperty();
    for (int i = 0; i <= 360; i += 45) {
        double radians = Math.toRadians(i);
        JulianDate time = JulianDate.addSeconds(_start, i, new JulianDate());
        Cartesian3 position = Cartesian3.fromDegrees(lon + (radius * 1.5 * java.lang.Math.cos(radians)), lat + (radius * java.lang.Math.sin(radians)), Math.nextRandomNumber() * 500 + 1750);
        property.addSample(time, position);
        PointGraphicsOptions pointGraphicsOptions = new PointGraphicsOptions();
        pointGraphicsOptions.pixelSize = new ConstantProperty<>(8);
        pointGraphicsOptions.color = new ConstantProperty<>(Color.TRANSPARENT());
        pointGraphicsOptions.outlineColor = new ConstantProperty<>(Color.YELLOW());
        pointGraphicsOptions.outlineWidth = new ConstantProperty<>(3);
        EntityOptions entityOptions = new EntityOptions();
        entityOptions.position = new ConstantPositionProperty(position);
        entityOptions.point = new PointGraphics(pointGraphicsOptions);
        csVPanel.getViewer().entities().add(entityOptions);
    }
    return property;
}
Also used : PointGraphicsOptions(org.cesiumjs.cs.datasources.graphics.options.PointGraphicsOptions) PointGraphics(org.cesiumjs.cs.datasources.graphics.PointGraphics) EntityOptions(org.cesiumjs.cs.datasources.options.EntityOptions)

Example 34 with EntityOptions

use of org.cesiumjs.cs.datasources.options.EntityOptions in project gwt-cs by iSergio.

the class Billboards method addMarkerBillboards.

private void addMarkerBillboards() {
    BillboardGraphicsOptions billboardGraphicsOptions = new BillboardGraphicsOptions();
    billboardGraphicsOptions.image = new ConstantProperty<>(GWT.getModuleBaseURL() + "images/whiteShapes.png");
    billboardGraphicsOptions.imageSubRegion = new ConstantProperty<>(new BoundingRectangle(49, 43, 18, 18));
    billboardGraphicsOptions.color = new ConstantProperty<>(Color.LIME());
    EntityOptions entityOptions = new EntityOptions();
    entityOptions.billboard = new BillboardGraphics(billboardGraphicsOptions);
    entityOptions.position = new ConstantPositionProperty(Cartesian3.fromDegrees(-75.59777, 40.03883));
    csVPanel.getViewer().entities().add(new Entity(entityOptions));
    billboardGraphicsOptions = new BillboardGraphicsOptions();
    billboardGraphicsOptions.image = new ConstantProperty<>(GWT.getModuleBaseURL() + "images/whiteShapes.png");
    billboardGraphicsOptions.imageSubRegion = new ConstantProperty<>(new BoundingRectangle(61, 23, 18, 18));
    billboardGraphicsOptions.color = new ConstantProperty<>(new Color(0, 0.5, 1.0, 1.0));
    entityOptions = new EntityOptions();
    entityOptions.billboard = new BillboardGraphics(billboardGraphicsOptions);
    entityOptions.position = new ConstantPositionProperty(Cartesian3.fromDegrees(-84.0, 39.0));
    csVPanel.getViewer().entities().add(new Entity(entityOptions));
    billboardGraphicsOptions = new BillboardGraphicsOptions();
    billboardGraphicsOptions.image = new ConstantProperty<>(GWT.getModuleBaseURL() + "images/whiteShapes.png");
    billboardGraphicsOptions.imageSubRegion = new ConstantProperty<>(new BoundingRectangle(67, 80, 14, 14));
    billboardGraphicsOptions.color = new ConstantProperty<>(new Color(0.5, 0.9, 1.0, 1.0));
    entityOptions = new EntityOptions();
    entityOptions.billboard = new BillboardGraphics(billboardGraphicsOptions);
    entityOptions.position = new ConstantPositionProperty(Cartesian3.fromDegrees(-70.0, 41.0));
    csVPanel.getViewer().entities().add(new Entity(entityOptions));
    billboardGraphicsOptions = new BillboardGraphicsOptions();
    billboardGraphicsOptions.image = new ConstantProperty<>(GWT.getModuleBaseURL() + "images/whiteShapes.png");
    billboardGraphicsOptions.imageSubRegion = new ConstantProperty<>(new BoundingRectangle(27, 103, 22, 22));
    billboardGraphicsOptions.color = new ConstantProperty<>(Color.RED());
    entityOptions = new EntityOptions();
    entityOptions.billboard = new BillboardGraphics(billboardGraphicsOptions);
    entityOptions.position = new ConstantPositionProperty(Cartesian3.fromDegrees(-73.0, 37.0));
    csVPanel.getViewer().entities().add(new Entity(entityOptions));
    billboardGraphicsOptions = new BillboardGraphicsOptions();
    billboardGraphicsOptions.image = new ConstantProperty<>(GWT.getModuleBaseURL() + "images/whiteShapes.png");
    billboardGraphicsOptions.imageSubRegion = new ConstantProperty<>(new BoundingRectangle(105, 105, 18, 18));
    billboardGraphicsOptions.color = new ConstantProperty<>(Color.YELLOW());
    entityOptions = new EntityOptions();
    entityOptions.billboard = new BillboardGraphics(billboardGraphicsOptions);
    entityOptions.position = new ConstantPositionProperty(Cartesian3.fromDegrees(-79.0, 35.0));
    csVPanel.getViewer().entities().add(new Entity(entityOptions));
}
Also used : Entity(org.cesiumjs.cs.datasources.Entity) BillboardGraphicsOptions(org.cesiumjs.cs.datasources.graphics.options.BillboardGraphicsOptions) BillboardGraphics(org.cesiumjs.cs.datasources.graphics.BillboardGraphics) ConstantPositionProperty(org.cesiumjs.cs.datasources.properties.ConstantPositionProperty) EntityOptions(org.cesiumjs.cs.datasources.options.EntityOptions)

Example 35 with EntityOptions

use of org.cesiumjs.cs.datasources.options.EntityOptions in project gwt-cs by iSergio.

the class Billboards method addMultipleBillboards.

private void addMultipleBillboards() {
    String logoUrl = GWT.getModuleBaseURL() + "images/Cesium_Logo_overlay.png";
    String facilityUrl = GWT.getModuleBaseURL() + "images/facility.gif";
    BillboardGraphicsOptions billboardGraphicsOptions = new BillboardGraphicsOptions();
    billboardGraphicsOptions.image = new ConstantProperty<>(logoUrl);
    BillboardGraphics billboardGraphics = new BillboardGraphics(billboardGraphicsOptions);
    EntityOptions entityOptions = new EntityOptions();
    entityOptions.position = new ConstantPositionProperty(Cartesian3.fromDegrees(-75.59777, 40.03883));
    entityOptions.billboard = billboardGraphics;
    csVPanel.getViewer().entities().add(new Entity(entityOptions));
    billboardGraphicsOptions = new BillboardGraphicsOptions();
    billboardGraphicsOptions.image = new ConstantProperty<>(facilityUrl);
    billboardGraphics = new BillboardGraphics(billboardGraphicsOptions);
    entityOptions = new EntityOptions();
    entityOptions.position = new ConstantPositionProperty(Cartesian3.fromDegrees(-80.50, 35.14));
    entityOptions.billboard = billboardGraphics;
    csVPanel.getViewer().entities().add(new Entity(entityOptions));
    billboardGraphicsOptions = new BillboardGraphicsOptions();
    billboardGraphicsOptions.image = new ConstantProperty<>(facilityUrl);
    billboardGraphics = new BillboardGraphics(billboardGraphicsOptions);
    entityOptions = new EntityOptions();
    entityOptions.position = new ConstantPositionProperty(Cartesian3.fromDegrees(-80.12, 25.46));
    entityOptions.billboard = billboardGraphics;
    csVPanel.getViewer().entities().add(new Entity(entityOptions));
}
Also used : Entity(org.cesiumjs.cs.datasources.Entity) BillboardGraphicsOptions(org.cesiumjs.cs.datasources.graphics.options.BillboardGraphicsOptions) BillboardGraphics(org.cesiumjs.cs.datasources.graphics.BillboardGraphics) ConstantPositionProperty(org.cesiumjs.cs.datasources.properties.ConstantPositionProperty) EntityOptions(org.cesiumjs.cs.datasources.options.EntityOptions)

Aggregations

EntityOptions (org.cesiumjs.cs.datasources.options.EntityOptions)41 Entity (org.cesiumjs.cs.datasources.Entity)27 ConstantPositionProperty (org.cesiumjs.cs.datasources.properties.ConstantPositionProperty)27 BillboardGraphics (org.cesiumjs.cs.datasources.graphics.BillboardGraphics)13 BillboardGraphicsOptions (org.cesiumjs.cs.datasources.graphics.options.BillboardGraphicsOptions)13 ViewerPanel (org.cesiumjs.cs.widgets.ViewerPanel)13 ModelGraphics (org.cesiumjs.cs.datasources.graphics.ModelGraphics)11 ModelGraphicsOptions (org.cesiumjs.cs.datasources.graphics.options.ModelGraphicsOptions)11 LabelGraphics (org.cesiumjs.cs.datasources.graphics.LabelGraphics)10 LabelGraphicsOptions (org.cesiumjs.cs.datasources.graphics.options.LabelGraphicsOptions)10 HTML (com.google.gwt.user.client.ui.HTML)8 ConstantProperty (org.cesiumjs.cs.datasources.properties.ConstantProperty)6 ChangeEvent (com.google.gwt.event.dom.client.ChangeEvent)5 ColorMaterialProperty (org.cesiumjs.cs.datasources.properties.ColorMaterialProperty)5 ViewerOptions (org.cesiumjs.cs.widgets.options.ViewerOptions)5 ChangeHandler (com.google.gwt.event.dom.client.ChangeHandler)4 MouseMoveEvent (org.cesiumjs.cs.core.events.MouseMoveEvent)4 CesiumTerrainProvider (org.cesiumjs.cs.core.providers.CesiumTerrainProvider)4 CesiumTerrainProviderOptions (org.cesiumjs.cs.core.providers.options.CesiumTerrainProviderOptions)4 Scene (org.cesiumjs.cs.scene.Scene)4