public class WMSImagery extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
WMSImagery.ChildIterator |
static class |
WMSImagery.LayerDetails
The details of a layer of this WMS server.
|
static class |
WMSImagery.WMSGetCapabilitiesException
An exception that is thrown if there was an error while getting the capabilities of the WMS server.
|
Modifier and Type | Field and Description |
---|---|
private java.util.List<java.lang.String> |
formats |
private java.util.List<WMSImagery.LayerDetails> |
layers |
private java.net.URL |
serviceUrl |
private java.lang.String |
version |
Constructor and Description |
---|
WMSImagery() |
Modifier and Type | Method and Description |
---|---|
void |
attemptGetCapabilities(java.lang.String serviceUrlStr)
Attempts WMS "GetCapabilities" request and initializes internal variables if successful.
|
java.lang.String |
buildGetMapUrl(java.util.Collection<WMSImagery.LayerDetails> selectedLayers)
Returns the URL for the "GetMap" WMS request in JPEG format.
|
java.lang.String |
buildGetMapUrl(java.util.Collection<WMSImagery.LayerDetails> selectedLayers,
java.lang.String format)
Returns the URL for the "GetMap" WMS request.
|
(package private) java.lang.String |
buildRootUrl() |
private void |
doAttemptGetCapabilities(java.lang.String serviceUrlStr,
java.net.URL getCapabilitiesUrl)
Attempts WMS GetCapabilities with version 1.1.1 first, then 1.3.0 in case of specific errors.
|
private void |
doAttemptGetCapabilities130(java.lang.String serviceUrlStr,
java.lang.String url)
Attempts WMS GetCapabilities with version 1.3.0.
|
private static org.w3c.dom.Element |
getChild(org.w3c.dom.Element parent,
java.lang.String name) |
private static java.lang.String |
getChildContent(org.w3c.dom.Element parent,
java.lang.String name,
java.lang.String missing,
java.lang.String empty) |
private static java.util.List<org.w3c.dom.Element> |
getChildren(org.w3c.dom.Element parent,
java.lang.String name) |
private static java.util.stream.Stream<org.w3c.dom.Element> |
getChildrenStream(org.w3c.dom.Element parent) |
private static java.util.stream.Stream<org.w3c.dom.Element> |
getChildrenStream(org.w3c.dom.Element parent,
java.lang.String name) |
private static java.lang.String |
getContent(org.w3c.dom.Element element) |
private static double |
getDecimalDegree(org.w3c.dom.Element elem,
java.lang.String attr) |
java.util.List<java.lang.String> |
getFormats()
Returns the list of supported formats.
|
java.util.List<WMSImagery.LayerDetails> |
getLayers()
Returns the list of layers.
|
java.lang.String |
getPreferredFormats()
Gets the preffered format for this imagery layer.
|
java.net.URL |
getServiceUrl()
Returns the service URL.
|
java.lang.String |
getVersion()
Returns the WMS version used.
|
(package private) static boolean |
imageFormatHasTransparency(java.lang.String format) |
(package private) static boolean |
isImageFormatSupported(java.lang.String format) |
(package private) static boolean |
isImageFormatSupported(java.lang.String format,
java.lang.String... mimeFormats) |
private static boolean |
isImageFormatSupportedWarn(java.lang.String format) |
private static boolean |
isProjSupported(java.lang.String crs) |
(package private) void |
parseCapabilities(java.lang.String serviceUrlStr,
java.io.InputStream contentStream) |
private WMSImagery.LayerDetails |
parseLayer(org.w3c.dom.Element element,
java.util.Set<java.lang.String> parentCrs) |
private java.util.List<WMSImagery.LayerDetails> |
parseLayers(java.util.List<org.w3c.dom.Element> children,
java.util.Set<java.lang.String> parentCrs) |
ImageryInfo |
toImageryInfo(java.lang.String name,
java.util.Collection<WMSImagery.LayerDetails> selectedLayers)
Returns a new
ImageryInfo describing the given service name and selected WMS layers. |
private java.util.List<WMSImagery.LayerDetails> layers
private java.net.URL serviceUrl
private java.util.List<java.lang.String> formats
private java.lang.String version
public WMSImagery()
public java.util.List<WMSImagery.LayerDetails> getLayers()
public java.net.URL getServiceUrl()
public java.lang.String getVersion()
public java.util.List<java.lang.String> getFormats()
public java.lang.String getPreferredFormats()
java.lang.String buildRootUrl()
public java.lang.String buildGetMapUrl(java.util.Collection<WMSImagery.LayerDetails> selectedLayers)
selectedLayers
- the list of selected layers, matching the "LAYERS" WMS request argumentpublic java.lang.String buildGetMapUrl(java.util.Collection<WMSImagery.LayerDetails> selectedLayers, java.lang.String format)
selectedLayers
- the list of selected layers, matching the "LAYERS" WMS request argumentformat
- the requested image format, matching the "FORMAT" WMS request argumentpublic void attemptGetCapabilities(java.lang.String serviceUrlStr) throws java.io.IOException, WMSImagery.WMSGetCapabilitiesException
serviceUrlStr
- WMS service URLjava.io.IOException
- if any I/O errors occursWMSImagery.WMSGetCapabilitiesException
- if the WMS server replies a ServiceExceptionprivate void doAttemptGetCapabilities(java.lang.String serviceUrlStr, java.net.URL getCapabilitiesUrl) throws java.io.IOException, WMSImagery.WMSGetCapabilitiesException
serviceUrlStr
- WMS service URLgetCapabilitiesUrl
- GetCapabilities URLjava.io.IOException
- if any I/O error occursWMSImagery.WMSGetCapabilitiesException
- if any HTTP or parsing error occursprivate void doAttemptGetCapabilities130(java.lang.String serviceUrlStr, java.lang.String url) throws java.io.IOException, WMSImagery.WMSGetCapabilitiesException
serviceUrlStr
- WMS service URLurl
- GetCapabilities URLjava.io.IOException
- if any I/O error occursWMSImagery.WMSGetCapabilitiesException
- if any HTTP or parsing error occursjava.net.MalformedURLException
- in case of invalid URLvoid parseCapabilities(java.lang.String serviceUrlStr, java.io.InputStream contentStream) throws java.io.IOException, WMSImagery.WMSGetCapabilitiesException
java.io.IOException
WMSImagery.WMSGetCapabilitiesException
private static boolean isImageFormatSupportedWarn(java.lang.String format)
static boolean isImageFormatSupported(java.lang.String format)
static boolean isImageFormatSupported(java.lang.String format, java.lang.String... mimeFormats)
static boolean imageFormatHasTransparency(java.lang.String format)
public ImageryInfo toImageryInfo(java.lang.String name, java.util.Collection<WMSImagery.LayerDetails> selectedLayers)
ImageryInfo
describing the given service name and selected WMS layers.name
- service nameselectedLayers
- selected WMS layersImageryInfo
describing the given service name and selected WMS layersprivate java.util.List<WMSImagery.LayerDetails> parseLayers(java.util.List<org.w3c.dom.Element> children, java.util.Set<java.lang.String> parentCrs)
private WMSImagery.LayerDetails parseLayer(org.w3c.dom.Element element, java.util.Set<java.lang.String> parentCrs)
private static double getDecimalDegree(org.w3c.dom.Element elem, java.lang.String attr)
private static boolean isProjSupported(java.lang.String crs)
private static java.lang.String getChildContent(org.w3c.dom.Element parent, java.lang.String name, java.lang.String missing, java.lang.String empty)
private static java.lang.String getContent(org.w3c.dom.Element element)
private static java.util.stream.Stream<org.w3c.dom.Element> getChildrenStream(org.w3c.dom.Element parent)
private static java.util.stream.Stream<org.w3c.dom.Element> getChildrenStream(org.w3c.dom.Element parent, java.lang.String name)
private static java.util.List<org.w3c.dom.Element> getChildren(org.w3c.dom.Element parent, java.lang.String name)
private static org.w3c.dom.Element getChild(org.w3c.dom.Element parent, java.lang.String name)