📄 wmcagsmapresourcewriter.java
字号:
/**
*
*/
package com.esri.solutions.jitk.data.wmc;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import com.esri.adf.web.ags.data.AGSMapFunctionality;
import com.esri.adf.web.ags.data.AGSMapResource;
import com.esri.arcgisws.EsriImageFormat;
import com.esri.arcgisws.LayerDescription;
import com.esri.arcgisws.MapLayerInfo;
/**
* @author vlad2928
*
*/
public class WMCAGSMapResourceWriter extends WMCGISResourceWriter {
private static final Logger _logger = LogManager.getLogger(WMCAGSMapResourceWriter.class);
protected WMCAGSMapResourceWriter(AGSMapResource resource) {
super(resource);
}
private StringBuffer serverTagToWMC() {
StringBuffer buf = new StringBuffer();
String sURL = ((AGSMapResource)resource).getEndPointURL();
if(sURL != null && sURL.length() > 0) {
Tag serverTag = new Tag("Server", new String[][] {{"title", resource.getAlias()}, {"service", "ESRI:AGS:MAP:SOAP"}, {"version" , ""}}, null, true); //Can't discover version
buf.append(serverTag.open());
buf.append(attsTag("OnlineResource", new String[][] {{"xlink:href", sURL}, {"xlink:type" , "simple"}}));
buf.append(serverTag.close());
} else {
_logger.warn("Invalid AGSMapResource specified.");
}
return buf;
}
private String getImageFormat(AGSMapFunctionality func) {
EsriImageFormat imgFormat = func.getImageDescription().getImageType().getImageFormat();
if(imgFormat != null) {
if(imgFormat.equals(EsriImageFormat.esriImagePNG)) {
return "image/png";
} else if(imgFormat.equals(EsriImageFormat.esriImageAI)) {
return "";
} else if(imgFormat.equals(EsriImageFormat.esriImageBMP)) {
return "image/bmp";
} else if(imgFormat.equals(EsriImageFormat.esriImageDIB)) {
return "";
} else if(imgFormat.equals(EsriImageFormat.esriImageEMF)) {
return "";
} else if(imgFormat.equals(EsriImageFormat.esriImageGIF)) {
return "image/gif";
} else if(imgFormat.equals(EsriImageFormat.esriImageJPG)) {
return "image/jpeg";
} else if(imgFormat.equals(EsriImageFormat.esriImageNone)) {
return "";
} else if(imgFormat.equals(EsriImageFormat.esriImagePDF)) {
return "application/pdf";
} else if(imgFormat.equals(EsriImageFormat.esriImagePNG24)) {
return "image/png24";
} else if(imgFormat.equals(EsriImageFormat.esriImagePS)) {
return "application/postscript";
} else if(imgFormat.equals(EsriImageFormat.esriImageSVG)) {
return "image/svg+xml";
} else if(imgFormat.equals(EsriImageFormat.esriImageTIFF)) {
return "image/tiff";
}
}
return "";
}
protected StringBuffer writeLayers(StringBuffer serverTag) {
StringBuffer buf = new StringBuffer();
AGSMapFunctionality mFunc = (AGSMapFunctionality)resource.getFunctionality(AGSMapFunctionality.FUNCTIONALITY_NAME);
if(mFunc != null && serverTag.length() > 0) {
for(int i=0; i < mFunc.getLayerDescriptions().length; i++) {
LayerDescription desc = mFunc.getLayerDescription(i);
MapLayerInfo info = mFunc.getLayerInfo(i);
if(!info.isIsComposite()) {
Tag layerTag = new Tag("Layer", new String[][] {{ "hidden", (desc.isVisible() && !mFunc.isDisabled()) ? "0" : "1"}, {"queryable" , info.isCanIdentify()? "1" : "0"}}, null, true);
buf.append(layerTag.open());
buf.append(serverTag);
buf.append(valueTag("Name", info.getName()));
buf.append(valueTag("Title", info.getDescription()));
buf.append(valueTag("SRS", "EPSG:" + getSRS(mFunc.getFullExtent().getSpatialReference())));
Tag formatListTag = new Tag("FormatList", null, null, true);
buf.append(formatListTag.open());
buf.append(attsValueTag("Format", new String[][] {{"current" , "1"}}, getImageFormat(mFunc)));
buf.append(formatListTag.close());
buf.append(layerTag.close());
}
}
}
return buf;
}
/* (non-Javadoc)
* @see com.esri.solutions.jitk.data.wmc.IWMCGISResourceWriter#write()
*/
public StringBuffer write() {
return writeLayers(serverTagToWMC());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -