Skip To Content ArcGIS for Developers Sign In Dashboard

View Content Beneath Terrain Surface


package com.esri.samples.scene.view_content_beneath_terrain_surface;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.ProgressIndicator;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

import com.esri.arcgisruntime.mapping.ArcGISScene;
import com.esri.arcgisruntime.mapping.NavigationConstraint;
import com.esri.arcgisruntime.mapping.view.SceneView;

public class ViewContentBeneathTerrainSurfaceSample extends Application {

  private SceneView sceneView;

  public void start(Stage stage) throws Exception {

    // create stack pane and JavaFX app scene
    StackPane stackPane = new StackPane();
    Scene fxScene = new Scene(stackPane);

    // set title, size, and add JavaFX scene to stage
    stage.setTitle("View Content Beneath Terrain Surface Sample");

    // create a scene from a web scene Url and set it to the scene view
    ArcGISScene scene = new ArcGISScene("");
    sceneView = new SceneView();

    // add a progress indicator to show the scene is loading
    ProgressIndicator progressIndicator = new ProgressIndicator(ProgressIndicator.INDETERMINATE_PROGRESS);

    // once the scene has loaded, set the navigation constraint and opacity of the base surface
    scene.addDoneLoadingListener(() -> {
      // ensure the navigation constraint is set to NONE to view content beneath the terrain surface
      // set opacity to view content beneath the base surface

    // hide the progress indicator once the sceneview has completed drawing
    sceneView.addDrawStatusChangedListener(event -> progressIndicator.setVisible(false));

    // add the scene view and progress indicator to the stack pane
    stackPane.getChildren().addAll(sceneView, progressIndicator);

   * Stops and releases all resources used in application.
  public void stop() {

    if (sceneView != null) {

   * Opens and runs application.
   * @param args arguments passed to this application
  public static void main(String[] args) {


In this topic
  1. Code