Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

213
Views
How to draw semi ellipsoid clamp to ground

Here, i am using the below code for 3D map. And this creates semi ellipsoid below the ground surface in case of terrain area.

var viewer = new Cesium.Viewer("cesiumContainer", {
  terrainProvider: Cesium.createWorldTerrain(),
});

viewer.scene.globe.depthTestAgainstTerrain = true;
viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;

var radiusX = 720;
var radiusY = 720;
var radiusZ = 600; // radius in the up direction

var entityPosition = Cesium.Cartesian3.fromDegrees(82.88827, 39.50256, 0 );

viewer.scene.primitives.add(new Cesium.DebugModelMatrixPrimitive({
            modelMatrix : Cesium.Transforms.eastNorthUpToFixedFrame(entityPosition),
            length : radiusZ,
            width : 1.0
        }));

var entiti_ellipsoid = viewer.entities.add({
      position: entityPosition,
      ellipsoid: {
        radii: new Cesium.Cartesian3(radiusX, radiusY, radiusZ),
        maximumCone: Cesium.Math.PI_OVER_TWO,
        material: Cesium.Color.fromRandom({ alpha: 0.5 }),
        //clampToGround: true,
       // heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
      },
    });

viewer.zoomTo(entiti_ellipsoid);

Attaching the output snippet below.enter image description here

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Sandcastle

    var viewer = new Cesium.Viewer("cesiumContainer", {
        terrainProvider: Cesium.createWorldTerrain(),
    });

    viewer.scene.globe.depthTestAgainstTerrain = true;
    viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;

    var longitude = 82.88827;
    var latitude = 39.50256;

    var radiusX = 720;
    var radiusY = 720;
    var radiusZ = 600; // radius in the up direction

    viewer.camera.flyToBoundingSphere(new Cesium.BoundingSphere(Cesium.Cartesian3.fromDegrees(longitude, latitude, 1000), radiusZ * 2));

    var drawn = false;

    viewer.scene.globe.tileLoadProgressEvent.addEventListener(function (queuedTileCount) {
        if (drawn)
            return;

        console.log(queuedTileCount);
        console.log(viewer.scene.globe.tilesLoaded);

        if (viewer.scene.globe.tilesLoaded) {
            var height = viewer.scene.globe.getHeight(Cesium.Cartographic.fromDegrees(longitude, latitude));

            console.log(height);

            var entityPosition = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);

            viewer.scene.primitives.add(new Cesium.DebugModelMatrixPrimitive({
                modelMatrix: Cesium.Transforms.eastNorthUpToFixedFrame(entityPosition),
                length: radiusZ,
                width: 1.0
            }));

            var entiti_ellipsoid = viewer.entities.add({
                position: entityPosition,
                ellipsoid: {
                    radii: new Cesium.Cartesian3(radiusX, radiusY, radiusZ),
                    maximumCone: Cesium.Math.PI_OVER_TWO,
                    material: Cesium.Color.fromRandom({alpha: 0.5}),
                    //clampToGround: true,
                    // heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
                },
            });

            drawn = true;
        }
    });
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!