📄 wmsclient.java
字号:
package com.esri.solutions.jitk.datasources.ogc.wms;
import com.esri.wms.client.Layer;
import com.esri.wms.client.Map;
import com.esri.wms.client.ServerConnection;
import org.apache.log4j.Logger;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class WMSClient implements IWMSClient {
private static final Logger _logger = Logger.getLogger(WMSClient.class);
protected String _serviceUrl;
public WMSClient(String serviceUrl) {
_serviceUrl = serviceUrl;
}
public String getTitle() {
String title = "";
ServerConnection sc = null;
try {
sc = new ServerConnection(getBaseUrl());
title = sc.getServerTitle();
} catch (IOException ex) {
_logger.warn(
"An IOException occurred trying to find the WMS Title.");
_logger.debug("An IOException occurred trying to find the WMS Title using ServerConnection.",
ex);
}
return title;
}
public WMSCapabilities getCapabilities() throws Exception {
WMSCapabilities wmsCapabilities = new WMSCapabilities();
ServerConnection sc = null;
Map map = null;
List<Layer> layers = null;
try {
sc = new ServerConnection(getBaseUrl());
map = sc.getRequestHandler()
.parseCapabilitiesResponse(sc.getRequestHandler()
.getCapabilities(sc.getRequestHandler()
.createGetCapsRequest()
.toRequestString()));
wmsCapabilities.setSrs(map.getDefaultSpatialReference().getName());
wmsCapabilities.setMinX(String.valueOf(map.getFullExtent().getMinX()));
wmsCapabilities.setMinY(String.valueOf(map.getFullExtent().getMinY()));
wmsCapabilities.setMaxX(String.valueOf(map.getFullExtent().getMaxX()));
wmsCapabilities.setMaxY(String.valueOf(map.getFullExtent().getMaxY()));
wmsCapabilities.setFormat(sc.getMapFormats().get(0));
layers = map.getQueryableLayers();
String csvLayers = "";
for (Layer l : layers) {
csvLayers += (l.getName() + ",");
}
if (csvLayers.endsWith(",")) {
csvLayers = csvLayers.substring(0, csvLayers.lastIndexOf(','));
}
wmsCapabilities.setLayersCsv(csvLayers);
} catch (IOException ex) {
_logger.warn(
"An IOException occurred creating new WMS Server Connection - unable to get WMS Capabilities");
_logger.debug("An IOException occurred creating new WMS ServerConnection - unable to get WMS Capabilities",
ex);
}
return wmsCapabilities;
}
public byte[] getMapOverview(WMSCapabilities wmsCap, int width, int height)
throws Exception {
ServerConnection sc = null;
Map map = null;
byte[] image = null;
String request = null;
InputStream is = null;
InputStreamConverter isc = null;
try {
sc = new ServerConnection(getBaseUrl());
map = sc.getRequestHandler()
.parseCapabilitiesResponse(sc.getRequestHandler()
.getCapabilities(sc.getRequestHandler()
.createGetCapsRequest()
.toRequestString()));
map.setWidth(width);
map.setHeight(height);
request = sc.getRequestHandler()
.createGetMapRequest(map, wmsCap.getFormat())
.toRequestString();
is = sc.getRequestHandler().getMap(request);
isc = new InputStreamConverter();
image = isc.toByteArray(is);
} catch (IOException ex) {
_logger.warn(
"An IOException occurred getting WMS map image - unable to get map image");
_logger.debug("An IOException occurred WMS map image - unable to get map image",
ex);
}
return image;
}
private String getBaseUrl() {
String[] urlArray = _serviceUrl.split("\\*");
String wmsurl = urlArray[0];
return wmsurl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -