Class Ogc3DTilesLayer

java.lang.Object
com.esri.arcgisruntime.layers.Layer
com.esri.arcgisruntime.layers.Ogc3DTilesLayer
All Implemented Interfaces:
RemoteResource, LayerContent, Loadable

public final class Ogc3DTilesLayer extends Layer implements RemoteResource
A layer to visualize 3D tiles data that conforms to the OGC 3D Tiles specification.

The 3D Tiles Open Geospatial Consortium (OGC) specification defines a spatial data structure and a set of tile formats designed for streaming and rendering 3D geospatial content. A 3D Tiles data set, known as a tileset, defines one or more tile formats organized into a hierarchical spatial data structure. For more information, see the OGC 3D Tiles specification.

An Ogc3DTilesLayer can display data from a public service, a tileset (.json), or a 3D tiles archive format (.3tz). If a service requires an API key, use the getCustomParameters() property to populate the key and value.

Functional characteristics

3D Tiles datasets can contain many types of data, which can be of integrated mesh or 3D object type. An integrated mesh represents the continuous meshes with textures and replaces the surface. If a dataset needs to be drawn as an integrated mesh, the occludeSurfaceProperty() property must be true. This will cause the layer to draw on top of the surface.

3D Tiles have a default horizontal coordinate system of World Geodetic System 1984 (WGS84) and a vertical coordinate system of WGS84, which defines height based on an ellipsoidal model. However, an ArcGISScene uses the Earth Gravitational Model (EGM) or "gravity-related geoid" vertical coordinate system. Therefore, the z-values of Ogc3DTilesLayer objects are projected and rendered at the resolution of EGM96 within the scene. If you would like to use higher precision projection engine data such as EGM 2008, you can provide the path to the directory containing projection engine data by setting the TransformationCatalog.setProjectionEngineDirectory(String) property.

Performance characteristics

For an Ogc3DTilesLayer, the rendering of 3D data is based on the current level of detail (LOD), which is determined by the distance from the current viewpoint camera. Each object in the 3D tiles layer is represented differently at various LODs determined by the camera distance. As the camera distance changes in the scene, objects are displayed appropriately for the current LOD. This results in optimal client performance, and avoids frequently loading and unloading objects.

OGC3DTilesLayer supports:

  • Batched 3D Model (b3dm) data representing heterogeneous 3D models like textured terrains and surfaces, buildings, and so on.
Since:
200.4.0
See Also:
  • Property Details

  • Constructor Details

    • Ogc3DTilesLayer

      public Ogc3DTilesLayer(PortalItem item)
      Creates an OGC3DTilesLayer object with a portal item.
      Parameters:
      item - a 3D tiles PortalItem
      Throws:
      NullPointerException - if item is null
      Since:
      200.4.0
      See Also:
    • Ogc3DTilesLayer

      public Ogc3DTilesLayer(String uri)
      Creates an OGC3DTilesLayer object.
      Parameters:
      uri - the URL of a public service, the path to a tileset (.json), or the path to a 3D tiles archive format (.3tz) file
      Throws:
      NullPointerException - if uri is null
      Since:
      200.4.0
  • Method Details

    • uriProperty

      public ReadOnlyStringProperty uriProperty()
      The URI of the layer.
      Returns:
      the uri property
      Since:
      200.4.0
      See Also:
    • getUri

      public String getUri()
      Gets the value of the uri property.
      Specified by:
      getUri in interface RemoteResource
      Property description:
      The URI of the layer.
      Returns:
      the value of the uri property
      Since:
      200.4.0
      See Also:
    • altitudeOffsetProperty

      public DoubleProperty altitudeOffsetProperty()
      The layer altitude offset.

      This raises or lowers all features in the layer by the given offset.

      Returns:
      the altitudeOffset property
      Since:
      200.4.0
      See Also:
    • getAltitudeOffset

      public double getAltitudeOffset()
      Gets the value of the altitudeOffset property.
      Property description:
      The layer altitude offset.

      This raises or lowers all features in the layer by the given offset.

      Returns:
      the value of the altitudeOffset property
      Since:
      200.4.0
      See Also:
    • setAltitudeOffset

      public void setAltitudeOffset(double altitudeOffset)
      Sets the value of the altitudeOffset property.
      Property description:
      The layer altitude offset.

      This raises or lowers all features in the layer by the given offset.

      Parameters:
      altitudeOffset - the value for the altitudeOffset property
      Since:
      200.4.0
      See Also:
    • getCustomParameters

      public Map<String,String> getCustomParameters()
      Gets the dictionary of custom parameters (such as an API key) to be sent with the requests issued by this layer.
      Returns:
      the dictionary of custom parameters (such as an API key) to be sent with the requests issued by this layer
      Since:
      200.4.0
    • occludeSurfaceProperty

      public BooleanProperty occludeSurfaceProperty()
      True to hide the surface if it intersects the layer, false otherwise.

      The default value is true.

      Returns:
      the occludeSurface property
      Since:
      200.4.0
      See Also:
    • isOccludeSurface

      public boolean isOccludeSurface()
      Gets the value of the occludeSurface property.
      Property description:
      True to hide the surface if it intersects the layer, false otherwise.

      The default value is true.

      Returns:
      the value of the occludeSurface property
      Since:
      200.4.0
      See Also:
    • setOccludeSurface

      public void setOccludeSurface(boolean occludeSurface)
      Sets the value of the occludeSurface property.
      Property description:
      True to hide the surface if it intersects the layer, false otherwise.

      The default value is true.

      Parameters:
      occludeSurface - the value for the occludeSurface property
      Since:
      200.4.0
      See Also:
    • setRequestConfiguration

      public void setRequestConfiguration(RequestConfiguration requestConfiguration)
      Description copied from interface: RemoteResource
      Sets the RequestConfiguration used to modify the parameters of network requests made by this RemoteResource. If not set, the global RequestConfiguration will be used (see RequestConfiguration.getGlobalRequestConfiguration()).
      Specified by:
      setRequestConfiguration in interface RemoteResource
      Parameters:
      requestConfiguration - the RequestConfiguration used to modify network requests
    • getRequestConfiguration

      public RequestConfiguration getRequestConfiguration()
      Description copied from interface: RemoteResource
      Gets the RequestConfiguration used to modify the parameters of network requests made by this RemoteResource.
      Specified by:
      getRequestConfiguration in interface RemoteResource
      Returns:
      the RequestConfiguration used to modify network requests
    • setCredential

      public void setCredential(Credential credential)
      Sets the credential used to authenticate the user with the tiled layer.
      Specified by:
      setCredential in interface RemoteResource
      Parameters:
      credential - the credential used to authenticate the user with the tiled layer
      Since:
      200.4.0
    • getCredential

      public Credential getCredential()
      Gets the credential used to authenticate the user with the tiled layer.
      Specified by:
      getCredential in interface RemoteResource
      Returns:
      the credential used to authenticate the user with the tiled layer
      Since:
      200.4.0