org.opengis.layer
Interface Layer


@XmlElement(value="Layer")
public interface Layer

Organizes the basic GO-1 constructs that may be added to FeatureCanvas or Canvas. A GO-1 application may be directed to "add" a Layer; it should then add the Layer's FeatureLayer and Graphics to the respective canvases.

Mutability

In current version, layers are unmodifiable, i.e. they can't be modified through the API provided in this interface, but they are not immutable because they may (or may not, at implementor choice) reflect a change in the underlying database. This means that all methods returning a collection must returns either an unmodifiable one, or a copy. Modifying returned collections should have no affect on this Layer.

Note that the mutability aspect of Layer may be revisited in future versions, so users are encouraged to not rely strongly on current behavior.

Since:
GeoAPI 2.0
Version:
Implementation specification 1.3

Method Summary
 InternationalString getAbstract()
          Provides the narrative description of this Layer.
 Attribution getAttribution()
          Provides the attribution for this Layer, which identifies the source of the geographic information used in this layer.
 List<AuthorityURL> getAuthorityURLs()
          Provides the authority URLs named in this Layer's identifiers.
 Collection<Envelope> getBoundingBoxes()
          Provides the bounding boxes that specify the coordinate ranges for this Layer, as Envelopes, including bounding boxes inherited from parent Layers.
 int getCascaded()
          Indicates how many times this Layer has been cascaded.
 Set<CoordinateReferenceSystem> getCRSs()
          Provides the coordinate reference systems available to this Layer, which includes CRSs inherited from parent Layers.
 List<DataURL> getDataURLs()
          Provides the data URLs that offer links to the underlying data represented by this Layer.
 List<FeatureLayer> getFeatureLayers()
          Gets the feature layers from this Layer that are suitable for adding to a FeatureCanvas in order to visually represent this Layer.
 List<FeatureListURL> getFeatureListURLs()
          Provides the feature URLs that point to a list of features represented in this Layer.
 int getFixedHeight()
          Indicates that this Layer is not able to produce a map with a height different from the fixed height indicated.
 int getFixedWidth()
          Indicates that this Layer is not able to produce a map with a width different from the fixed width indicated.
 GeographicBoundingBox getGeographicBoundingBox()
          Provides the geographic bounding box that specify the longitude and latitude ranges for this Layer.
 List<Graphic> getGraphics()
          Gets the graphics from this Layer that are suitable for adding to a Canvas in order to visually represent this Layer.
 List<Identifier> getIdentifiers()
          Provides the identifiers containing ID numbers or labels defined by a particular authority.
 List<InternationalString> getKeywordList()
          Provides keywords to aid in catalogue searches.
 List<Layer> getLayers()
          Gets the child layers of this Layer.
 double getMaxScaleDenominator()
          Provides the upper bound for the range of scales for which it is appropriate to generate a map for this Layer.
 List<MetadataURL> getMetadataURLs()
          Provides the Metadata URLs that offer detailed, standardized metadata about the data for this Layer.
 double getMinScaleDenominator()
          Provides the lower bound for the range of scales for which it is appropriate to generate a map for this Layer.
 String getName()
          Provides a unique name for identifying this Layer.
 List<Style> getStyles()
          Provides the styles that may be requested for this Layer.
 InternationalString getTitle()
          Provides the human-readable string for presenting this Layer.
 boolean isNoSubsets()
          Indicates that this Layer is not able to produce a map of a geographic area other than this layer's declared bounding box.
 boolean isOpaque()
          Indicates whether this Layer's renderable data should be considered opaque, and therefore requested at the bottom of a stack of maps.
 boolean isQueryable()
          Indicates whether the GetFeatureInfo operation is supported on this Layer.
 

Method Detail

getName

@XmlElement(value="Name")
String getName()
Provides a unique name for identifying this Layer. If, and only if, a layer has a name, then it is a map layer that can be requested by using that name in the LAYERS parameter of a GetMap request. A layer that contains a Name element is referred to as a named layer. If the layer has a title but no name, then that layer is only a category title for all the layers nested within. A Map Server that advertises a layer containing a name element shall be able to accept that name as the value of LAYERS argument in a GetMap request and return the corresponding map. A client shall not attempt to request a layer that has a title but no name.

The name is not inherited by child layers.

Returns:
the unique string identifier for this Layer.

getTitle

@XmlElement(value="Title")
InternationalString getTitle()
Provides the human-readable string for presenting this Layer. Equivalent to Citation.getTitle() in ISO 19115.

Returns:
the human-readable title for this Layer.

getAbstract

@XmlElement(value="Abstract")
InternationalString getAbstract()
Provides the narrative description of this Layer. Equivalent to Identification.getAbstract() in ISO 19115. The abstract is not inherited by child layers.

Returns:
the narrative description of this Layer.

getKeywordList

@XmlElement(value="KeywordList")
List<InternationalString> getKeywordList()
Provides keywords to aid in catalogue searches. Equivalent to TopicCategory in ISO 19115 if the vocabulary attribute of Keyword element is "ISO19115:2003". Other vocabularies are permitted. The keywords are not inherited by child layers.

The returned List (if modifiable) should not be live, and modifying it should not affect this Layer's set of keywords.

Returns:
this Layer's keyword list.

getCRSs

@XmlElement(value="CRS")
Set<CoordinateReferenceSystem> getCRSs()
Provides the coordinate reference systems available to this Layer, which includes CRSs inherited from parent Layers. In order to indicate what layer CRSs are available, every named layer shall have at least one CRS. The root layer shall include a sequence of zero or more CRS elements listing all CRSs that are common to all subsidiary layers. A child layer may optionally add to the list inherited from a parent layer.

If CRS and bounding boxes are backed by a Map<CoordinateReferenceSystem,Envelope> (from the J2SE collection framework), then the CRSs are the ket set of the above-cited map.

This Set (if modifiable) should not be live, and modifying it should not affect this Layer's set of CRSs.

Returns:
this Layer's coordinate reference systems.

getBoundingBoxes

@XmlElement(value="BoundingBox")
Collection<Envelope> getBoundingBoxes()
Provides the bounding boxes that specify the coordinate ranges for this Layer, as Envelopes, including bounding boxes inherited from parent Layers. Equivalent to BoundingPolygon in ISO 19115, except that it is strictly a box here.

A layer may have multiple bounding box elements, but each one shall state a different CRS. A bounding box inherited from the parent layer for a particular CRS is replaced by any declaration for the same CRS in the child layer. A bounding box in the child for a new CRS not already declared by the parent is added to the list of bounding boxes for the child layer. A single layer element shall not contain more than one bounding box for the same CRS.

NOTE: There is no provision for describing disjoint bounding boxes. For example, consider a dataset which covers two areas separated by some distance. The server cannot provide two separate bounding boxes in the same layer using the same CRS to separately describe those areas. To handle this type of situation, the server may either define a single larger bounding box which encloses both areas, or may define two separate layers that each have distinct name and bounding box values.

A layer shall not provide a bounding box for a CRS it does not support. Conversely, a layer may support CRSs for which it does not provide a bounding box: a server that has the ability to transform data to different CRSs may choose not to provide an explicit bounding box for every possible CRS available for each layer. The server should provide bounding box information for at least the native CRS of the layer (that is, the CRS in which the layer is stored in the server's database).

If CRS and bounding boxes are backed by a Map<CoordinateReferenceSystem,Envelope> (from the J2SE collection framework), then the bounding boxes are the values of the above-cited map.

This Collection (if modifiable) should not be live, and modifying it should have no affect on this Layer's set of bounding boxes.

Returns:
this Layer's bounding box envelopes.

getGeographicBoundingBox

@XmlElement(value="GeographicBoundingBox")
GeographicBoundingBox getGeographicBoundingBox()
Provides the geographic bounding box that specify the longitude and latitude ranges for this Layer. Every named layer shall have exactly one geographic bounding box that is either stated explicitly or inherited from a parent layer. Geographic bounding box states, via the west bound longitude, east bound longitude, south bound latitude, and north bound latitude, the minimum bounding rectangle in decimal degrees of the area covered by the layer. Geographic bounding box shall be supplied regardless of what CRS the map server may support, but it may be approximate if the data are not natively in geographic coordinates. The purpose of beographic bounding box is to facilitate geographic searches without requiring coordinate transformations by the search engine.

This method is conceptually similar to a bounding box in which the CRS is implicitly CRS:84. However, Geographic bounding box shall not be used as a substitute for <BoundingBox CRS="CRS:84">. If the server wishes to provide bounding box information in the CRS:84 CRS, then a separate bounding box element explicitly naming CRS:84 shall be included in the service metadata.


getAttribution

@XmlElement(value="Attribution")
Attribution getAttribution()
Provides the attribution for this Layer, which identifies the source of the geographic information used in this layer. This is partially equivalent to ResponsibleParty in ISO 19115. The attribution is inherited by child layers. Any redefinition by a child replaces the inherited value.

Returns:
this Layer's attribution.

getAuthorityURLs

@XmlElement(value="AuthorityURL")
List<AuthorityURL> getAuthorityURLs()
Provides the authority URLs named in this Layer's identifiers. Equivalent to Contact.getOnLineResource() in ISO 19115.

The returned List (if modifiable) should not be live, and modifying it should have no affect on this Layer's set of authority URLs.

Returns:
this Layer's authority URLs.

getIdentifiers

@XmlElement(value="Identifier")
List<Identifier> getIdentifiers()
Provides the identifiers containing ID numbers or labels defined by a particular authority. Equivalent to Identifier.getCode() in ISO 19115.

The returned List (if modifiable) should not be live, and modifying it should have no affect on this Layer's set of identifiers.

Returns:
this Layer's identifiers.

getMetadataURLs

@XmlElement(value="MetadataURL")
List<MetadataURL> getMetadataURLs()
Provides the Metadata URLs that offer detailed, standardized metadata about the data for this Layer.

The returned List (if modifiable) should not be live, and modifying it should have no affect on this Layer's set of metadata URLs.

Returns:
this Layer's metadata URLs.

getDataURLs

@XmlElement(value="DataURL")
List<DataURL> getDataURLs()
Provides the data URLs that offer links to the underlying data represented by this Layer. Data URLs are not inherited by child layers.

The returned List (if modifiable) should not be live, and modifying it should have no affect on this Layer's set of data URLs.

Returns:
this Layer's data URLs.

getFeatureListURLs

@XmlElement(value="FeatureListURL")
List<FeatureListURL> getFeatureListURLs()
Provides the feature URLs that point to a list of features represented in this Layer. Feature URLs are not inherited by child layers.

The returned List (if modifiable) should not be live, and modifying it should have no affect on this Layer's feature list URLs.

Returns:
this Layer's feature list URLs.

getStyles

@XmlElement(value="Style")
List<Style> getStyles()
Provides the styles that may be requested for this Layer. Zero or more styles may be advertised for a layer or collection of layers, each of which shall have name and title. The style's name is used in the Map request STYLES parameter. The title is a human-readable string. If only a single style is available, that style is known as the "default" style and need not be advertised by the server.

Style declarations are inherited by child layers. A child shall not redefine a style with the same name as one inherited from a parent. A child may define a new style with a new name that is not available for the parent layer.

The returned List (if modifiable) should not be live, and modifying it should have no affect on this Layer's styles.

Returns:
this Layer's styles.

getMinScaleDenominator

@XmlElement(value="MinScaleDenominator")
double getMinScaleDenominator()
Provides the lower bound for the range of scales for which it is appropriate to generate a map for this Layer. See "Scale denominators" section in package description. A value of 0 indicates this Layer has no minimum scale denominator. Negative values are not allowed.

Returns:
the minimum scale denominator, inclusive.

getMaxScaleDenominator

@XmlElement(value="MaxScaleDenominator")
double getMaxScaleDenominator()
Provides the upper bound for the range of scales for which it is appropriate to generate a map for this Layer. See "Scale denominators" section in package description. A value of Double.POSITIVE_INFINITY indicates this Layer has no maximum scale denominator.

Returns:
the maximum scale denominator, exclusive.

getLayers

List<Layer> getLayers()
Gets the child layers of this Layer. Typically, a Layer will have either child Layers or some combination of FeatureLayers and/or Graphics.

The returned List (if modifiable) should not be a live list. Modifying the list should have no affect on this Layer's child layers.

Returns:
the child layers.

isQueryable

@XmlElement(value="queryable")
boolean isQueryable()
Indicates whether the GetFeatureInfo operation is supported on this Layer. A server may support GetFeatureInfo on some of its layers but not on all. A server shall issue a service exception ("LayerNotQueryable") if GetFeatureInfo is requested on a layer that is not queryable.

Returns:
true if this Layer supports GetFeatureInfo.

getCascaded

@XmlElement(value="cascaded")
int getCascaded()
Indicates how many times this Layer has been cascaded. A layer is said to have been "cascaded" if it was obtained from an originating server and then included in the service metadata of a different server. The second server may simply offer an additional access point for the layer, or may add value by offering additional output formats or reprojection to other coordinate reference systems.

If a WMS cascades the content of another WMS then it shall increment by 1 the value of the cascaded attribute for the affected layers. If that attribute is missing from the originating server's service metadata, then the cascading WMS shall insert the attribute and set it to 1.

Returns:
how many times this Layer has been cascaded.

isOpaque

@XmlElement(value="opaque")
boolean isOpaque()
Indicates whether this Layer's renderable data should be considered opaque, and therefore requested at the bottom of a stack of maps. If false, then maps made from that layer will generally have significant no-data areas that a client may display as transparent. Vector features such as points and lines are considered not to be opaque in this context (even though at some scales and symbol sizes a collection of features might fill the map area). A true value for opaque indicates that the layer represents an area-filling coverage. For example, a map that represents topography and bathymetry as regions of differing colours will have no transparent areas. The opaque declaration should be taken as a hint to the client to place such a layer at the bottom of a stack of maps.

This attribute describes only the layer's data content, not the picture format of the map response. Whether or not a layer is listed as opaque, a server shall still comply the GetMap TRANSPARENT parameter: that is, the server shall send an image with a transparent background if and only if the client requests TRANSPARENT=TRUE and a picture FORMAT that supports transparency.

Returns:
true if this Layer's data is mostly opaque.

isNoSubsets

@XmlElement(value="noSubsets")
boolean isNoSubsets()
Indicates that this Layer is not able to produce a map of a geographic area other than this layer's declared bounding box. For example, a WMS that houses a collection of digitized images of historical maps, or pre-computed browse images of satellite data, may not be able to subset or resize those images. However, it can still respond to GetMap requests for complete maps in the original size.

Returns:
true if this Layer is not able to display subsets.

getFixedWidth

@XmlElement(value="fixedWidth")
int getFixedWidth()
Indicates that this Layer is not able to produce a map with a width different from the fixed width indicated. A value of 0 indicates this Layer has no fixed width.

Returns:
the fixed width of this Layer, or 0 if the width is not fixed.

getFixedHeight

@XmlElement(value="fixedHeight")
int getFixedHeight()
Indicates that this Layer is not able to produce a map with a height different from the fixed height indicated. A value of 0 indicates this Layer has no fixed height.

Returns:
the fixed height of this Layer, or 0 if the height is not fixed.

getFeatureLayers

List<FeatureLayer> getFeatureLayers()
Gets the feature layers from this Layer that are suitable for adding to a FeatureCanvas in order to visually represent this Layer.

The returned List (if modifiable) should not be a live list of this Layer's FeatureLayers, and modifying the list should not affect this Layer's set of FeatureLayers.

Returns:
the feature layers to add to a FeatureCanvas.

getGraphics

List<Graphic> getGraphics()
Gets the graphics from this Layer that are suitable for adding to a Canvas in order to visually represent this Layer.

The returned List (if modifiable) should not be a live list of this Layer's Graphics, and modifying the list should not affect this Layer's set of Graphics.

Returns:
the Graphics to add to a Canvas.


Copyright © 1994-2008 Open Geospatial Consortium. All Rights Reserved.