- All Implemented Interfaces:
RemoteResource
,LayerContent
,Loadable
Web Map Tile Service (WMTS) is an Open Geospatial Consortium (OGC) standard for delivering geographic data via raster tiles. The service may be hosted in the cloud on ArcGIS Online, on a third party server, or on-premises with ArcGIS Server. This API supports WMTS 1.0.0.
A WMTS layer uses pre-generated tiles to create a map instead of dynamically generating map images.
Functional characteristics
The maps provided by a WMTS service use predefined symbology defined by the server. As a result, it is not possible to apply custom renderers or to visualize feature selection.
A WMTS service can contain multiple layers in a hierarchy. A WMTS layer can be constructed directly with a URL to a service and the uniquely identifying name of the desired layer. Alternatively, a WMTS service can be used to programmatically explore the available layers and allow the user to choose layers at run time.
Performance characteristics
WMTS layer consumes raster tiles that were prerendered by a server. WMTS requires fewer server resources than WMS because the images are rendered and cached ahead of time. WMTS layer requires a connection to the service at all times.
Creating a WTMS layer from URL
For some WMTS services it may be necessary to provide a direct URI to the getCapabilities resource, by appending
either /1.0.0/WMTSCapabilities.xml
or ?service=wmts&request=getCapabilities&version=1.0.0
to
the root WMTS URI.
Example for working with WMTS layer
final WmtsLayer wmtsLayer = new WmtsLayer( "http://sampleserver6.arcgisonline.com/arcgis/rest/services/WorldTimeZones/MapServer/WMTS?", "WorldTimeZones"); wmtsLayer.addDoneLoadingListener(() -> { if (wmtsLayer.getLoadStatus() == LoadStatus.LOADED) { // work with WMTS layer here } }); map.getOperationalLayers().add(wmtsLayer);The layer is loaded when displayed in a
MapView
or a SceneView
; if using the layer without a
MapView
or a SceneView
, call the Layer.loadAsync()
method. Use the layer done loading
event to determine when the layer is ready, and check the loaded status before using the layer.- Since:
- 100.1.0
- See Also:
-
Property Summary
Properties inherited from class com.esri.arcgisruntime.layers.Layer
loadError, loadStatus
-
Nested Class Summary
Nested classes/interfaces inherited from class com.esri.arcgisruntime.layers.ImageTiledLayer
ImageTiledLayer.BufferSize, ImageTiledLayer.NoDataTileBehavior
-
Constructor Summary
ConstructorsConstructorDescriptionWmtsLayer
(WmtsLayerInfo layerInfo) Creates an instance of WmtsLayer from aWmtsLayerInfo
.WmtsLayer
(WmtsLayerInfo layerInfo, TileInfo.ImageFormat preferredImageFormat) Creates an instance of WmtsLayer from aWmtsLayerInfo
, and a preferred image format.WmtsLayer
(WmtsLayerInfo layerInfo, WmtsTileMatrixSet tileMatrixSet) Creates an instance of WmtsLayer from aWmtsLayerInfo
, and a tile matrix set.WmtsLayer
(WmtsLayerInfo layerInfo, WmtsTileMatrixSet tileMatrixSet, TileInfo.ImageFormat preferredImageFormat) Creates an instance of WmtsLayer from aWmtsLayerInfo
, tile matrix set, and a preferred image format.Creates an instance of WmtsLayer from a url and a layer ID.WmtsLayer
(String url, String layerId, TileInfo.ImageFormat preferredImageFormat) Creates an instance of WmtsLayer from a URL, layer ID, and a preferred image format.Creates an instance of WmtsLayer from a URL, layer ID, and a tile matrix set ID.WmtsLayer
(String url, String layerId, String tileMatrixSetId, TileInfo.ImageFormat preferredImageFormat) Creates an instance of WmtsLayer from a URL, layer ID, tile matrix set ID, and a preferred image format. -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Creates a deep copy of this WmtsLayer instance.Gets theCredential
that is set on the network-enabled resource.Gets aMap
containing custom parameters that are applied to all GetTile requests related to this layer.Gets the layer ID that was used to construct this layer.Gets the layer info.Gets the preferred image format.Gets theRequestConfiguration
used to modify the parameters of network requests made by thisRemoteResource
.protected byte[]
Gets the encoded bytes that represents a tile for the given tile key.Gets the tile matrix set.getUri()
Gets the URL of the WMTS layer.void
setCredential
(Credential credential) Sets aCredential
to be used by the network-enabled resource in the event of an authentication challenge.void
setRequestConfiguration
(RequestConfiguration requestConfiguration) Sets theRequestConfiguration
used to modify the parameters of network requests made by thisRemoteResource
.Methods inherited from class com.esri.arcgisruntime.layers.ImageTiledLayer
getBufferSize, getNoDataTileBehavior, getTileInfo, setBufferSize, setNoDataTileBehavior
Methods inherited from class com.esri.arcgisruntime.layers.ImageAdjustmentLayer
getBrightness, getContrast, getGamma, setBrightness, setContrast, setGamma
Methods inherited from class com.esri.arcgisruntime.layers.Layer
addDoneLoadingListener, addLoadStatusChangedListener, addVisibilityChangedListener, cancelLoad, canChangeVisibility, canShowInLegend, fetchLegendInfosAsync, getAttribution, getDescription, getFullExtent, getId, getItem, getLoadError, getLoadStatus, getMaxScale, getMinScale, getName, getOpacity, getSpatialReference, getSubLayerContents, isIdentifyEnabled, isVisible, isVisibleAtScale, loadAsync, loadErrorProperty, loadStatusProperty, removeDoneLoadingListener, removeLoadStatusChangedListener, removeVisibilityChangedListener, retryLoadAsync, setCanShowInLegend, setDescription, setId, setMaxScale, setMinScale, setName, setOpacity, setVisible
-
Constructor Details
-
WmtsLayer
Creates an instance of WmtsLayer from a url and a layer ID.- Parameters:
url
- the WMTS layer URLlayerId
- layer ID- Throws:
IllegalArgumentException
- if url is null or emptyIllegalArgumentException
- if layerId is null or empty- Since:
- 100.1.0
-
WmtsLayer
Creates an instance of WmtsLayer from a URL, layer ID, and a preferred image format.- Parameters:
url
- the WMTS layer URLlayerId
- layer IDpreferredImageFormat
- preferred image format- Throws:
IllegalArgumentException
- if url is null or emptyIllegalArgumentException
- if layerId is null or emptyIllegalArgumentException
- if preferredImageFormat is null- Since:
- 100.1.0
-
WmtsLayer
Creates an instance of WmtsLayer from a URL, layer ID, and a tile matrix set ID.- Parameters:
url
- the WMTS layer URLlayerId
- layer IDtileMatrixSetId
- tile matrix set ID- Throws:
IllegalArgumentException
- if url is null or emptyIllegalArgumentException
- if layerId is null or emptyIllegalArgumentException
- if tileMatrixSetId is null or empty- Since:
- 100.1.0
-
WmtsLayer
public WmtsLayer(String url, String layerId, String tileMatrixSetId, TileInfo.ImageFormat preferredImageFormat) Creates an instance of WmtsLayer from a URL, layer ID, tile matrix set ID, and a preferred image format.- Parameters:
url
- the WMTS layer URLlayerId
- layer IDtileMatrixSetId
- tile matrix set IDpreferredImageFormat
- preferred image format- Throws:
IllegalArgumentException
- if url is null or emptyIllegalArgumentException
- if layerId is null or emptyIllegalArgumentException
- if tileMatrixSetId is null or emptyIllegalArgumentException
- if preferredImageFormat is null- Since:
- 100.1.0
-
WmtsLayer
Creates an instance of WmtsLayer from aWmtsLayerInfo
.- Parameters:
layerInfo
- layer info- Throws:
IllegalArgumentException
- if layerInfo is null- Since:
- 100.1.0
-
WmtsLayer
Creates an instance of WmtsLayer from aWmtsLayerInfo
, and a preferred image format.- Parameters:
layerInfo
- layer infopreferredImageFormat
- preferred image format- Throws:
IllegalArgumentException
- if layerInfo is nullIllegalArgumentException
- if preferredImageFormat is null- Since:
- 100.1.0
-
WmtsLayer
Creates an instance of WmtsLayer from aWmtsLayerInfo
, and a tile matrix set.- Parameters:
layerInfo
- layer infotileMatrixSet
- tile matrix set- Throws:
IllegalArgumentException
- if layerInfo is nullIllegalArgumentException
- if tileMatrixSet is null- Since:
- 100.1.0
-
WmtsLayer
public WmtsLayer(WmtsLayerInfo layerInfo, WmtsTileMatrixSet tileMatrixSet, TileInfo.ImageFormat preferredImageFormat) Creates an instance of WmtsLayer from aWmtsLayerInfo
, tile matrix set, and a preferred image format.- Parameters:
layerInfo
- layer infotileMatrixSet
- tile matrix setpreferredImageFormat
- preferred image format- Throws:
IllegalArgumentException
- if layerInfo is nullIllegalArgumentException
- if tileMatrixSet is nullIllegalArgumentException
- if preferredImageFormat is null- Since:
- 100.1.0
-
-
Method Details
-
copy
Creates a deep copy of this WmtsLayer instance.- Returns:
- a deep copy of this WmtsLayer instance, which means that copies of all fields of this layer are made including its loading state
- Since:
- 100.1.0
-
getPreferredImageFormat
Gets the preferred image format.Note that this will return the value you specified in the constructor, not necessarily what the service returned.
- Returns:
- the preferred image format
- Since:
- 100.1.0
-
getLayerInfo
Gets the layer info.- Returns:
- the layer info
- Since:
- 100.1.0
-
getLayerId
Gets the layer ID that was used to construct this layer.- Returns:
- the layer ID that was used to construct this layer
- Since:
- 100.1.0
-
getTileMatrixSet
Gets the tile matrix set.- Returns:
- the tile matrix set
- Since:
- 100.1.0
-
getCustomParameters
Gets aMap
containing custom parameters that are applied to all GetTile requests related to this layer. Modify this Map to change the parameters that are used. If a parameter with the same name is defined in the service's custom parameters, then layer-specific values take precedence over service-wide values.- Returns:
- a modifiable Map; the keys are parameters names and the values are parameters values
- Since:
- 100.6.0
-
setCredential
Description copied from interface:RemoteResource
Sets aCredential
to be used by the network-enabled resource in the event of an authentication challenge. The default credential is null.Only applicable if the resource is secured.
- Specified by:
setCredential
in interfaceRemoteResource
- Parameters:
credential
- the Credential to be used for authentication
-
getCredential
Description copied from interface:RemoteResource
Gets theCredential
that is set on the network-enabled resource.Only applicable if the resource is secured.
- Specified by:
getCredential
in interfaceRemoteResource
- Returns:
- the Credential, or null if there is none
-
setRequestConfiguration
Description copied from interface:RemoteResource
Sets theRequestConfiguration
used to modify the parameters of network requests made by thisRemoteResource
. If not set, the globalRequestConfiguration
will be used (seeRequestConfiguration.getGlobalRequestConfiguration()
).- Specified by:
setRequestConfiguration
in interfaceRemoteResource
- Parameters:
requestConfiguration
- the RequestConfiguration used to modify network requests
-
getRequestConfiguration
Description copied from interface:RemoteResource
Gets theRequestConfiguration
used to modify the parameters of network requests made by thisRemoteResource
.- Specified by:
getRequestConfiguration
in interfaceRemoteResource
- Returns:
- the
RequestConfiguration
used to modify network requests
-
getUri
Gets the URL of the WMTS layer.- Specified by:
getUri
in interfaceRemoteResource
- Returns:
- the URL of the WMTS layer
- Since:
- 100.1.0
-
getTile
Description copied from class:ImageTiledLayer
Gets the encoded bytes that represents a tile for the given tile key. The encoding must matchTileInfo
specified in the constructorImageTiledLayer(TileInfo, Envelope)
.- Specified by:
getTile
in classImageTiledLayer
- Parameters:
tileKey
- key for the expected tile- Returns:
- the encoded bytes that represent the tile for the given tile key
-