📄 wmcaimsmapresourcewriter.java
字号:
/**
*
*/
package com.esri.solutions.jitk.data.wmc;
import java.util.Iterator;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import com.esri.adf.web.aims.data.AIMSMapFunctionality;
import com.esri.adf.web.aims.data.AIMSMapResource;
import com.esri.adf.web.aims.data.query.AIMSQueryFunctionality;
import com.esri.aims.mtier.model.map.layer.AcetateLayer;
/**
* @author vlad2928
*
*/
public class WMCAIMSMapResourceWriter extends WMCGISResourceWriter {
private static final Logger _logger = LogManager.getLogger(WMCAIMSMapResourceWriter.class);
protected WMCAIMSMapResourceWriter(AIMSMapResource resource) {
super(resource);
}
private StringBuffer serverTagToWMC(AIMSMapFunctionality func) {
StringBuffer buf = new StringBuffer();
if(func == null) return buf;
com.esri.aims.mtier.model.map.Map map = func.getMap();
if(map == null) return buf;
String host = ((AIMSMapResource)resource).getHostName();
if(host != null && host.length() > 0) {
if(host.toLowerCase().startsWith("http")) {
Tag serverTag = new Tag("Server", new String[][] {{"service", "ESRI:ARCIMS:HTTP"}, {"version" , map.ArcIMSApplicationServerVersion}, {"title", resource.getAlias()}}, null, true);
buf.append(serverTag.open());
buf.append(attsTag("OnlineResource", new String[][] {{"xlink:href", host}, {"xlink:type" , "simple"}}));
buf.append(serverTag.close());
} else {
Tag serverTag = new Tag("Server", new String[][] {{"service", "ESRI:ARCIMS:TCP"}, {"version" , map.ArcIMSApplicationServerVersion}, {"title", resource.getAlias()}}, null, true);
buf.append(serverTag.open());
buf.append(attsTag("OnlineResource", new String[][] {{"xlink:href", "tcp://" + host + ":" + ((AIMSMapResource)resource).getPort() + "/" + ((AIMSMapResource)resource).getServiceName()}, {"xlink:type" , "simple"}}));
buf.append(serverTag.close());
}
} else {
_logger.warn("Invalid ArcIMS host specified.");
}
return buf;
}
@SuppressWarnings("unchecked")
/* (non-Javadoc)
* @see com.esri.solutions.jitk.data.wmc.IWMCGISResourceWriter#write()
*/
public StringBuffer write() {
StringBuffer buf = new StringBuffer();
AIMSQueryFunctionality qfunc = (AIMSQueryFunctionality)resource.getFunctionality(AIMSQueryFunctionality.FUNCTIONALITY_NAME);
AIMSMapFunctionality mfunc = (AIMSMapFunctionality)resource.getFunctionality(AIMSMapFunctionality.FUNCTIONALITY_NAME);
StringBuffer serverTagBuffer = serverTagToWMC(mfunc);
if(serverTagBuffer.length() > 0) {
com.esri.aims.mtier.model.map.Map map = mfunc.getMap();
for(Iterator<com.esri.aims.mtier.model.map.layer.Layer> i = map.getLayers().getLayersCollection().iterator(); i.hasNext();) {
com.esri.aims.mtier.model.map.layer.Layer layer = i.next();
if(layer instanceof AcetateLayer) continue;
Tag layerTag = new Tag("Layer", new String[][] {{ "hidden", layer.isVisible() ? "0" : "1"}, {"queryable" , (qfunc != null && qfunc.getQueryLayers().contains(layer)) ? "1" : "0"}}, null, true);
buf.append(layerTag.open());
buf.append(serverTagBuffer);
buf.append(valueTag("Name", layer.getID()));
buf.append(valueTag("Title", layer.getName()));
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"}}, "image/" + mfunc.getMap().getMapOutput().getFileType().toLowerCase()));
buf.append(formatListTag.close());
buf.append(layerTag.close());
/*
Dataset ds = imgLayer.getDataset();
if(ds.getType().equals(Dataset.POINT)) {
} else if(ds.getType().equals(Dataset.LINE)) {
} else if(ds.getType().equals(Dataset.POLYGON)) {
}
<StyleList>
<Style>
<SLD>
<sld:FeatureTypeStyle>
<sld:Rule>
<sld:PolygonSymbolizer/>
</sld:Rule>
</sld:FeatureTypeStyle>
</SLD>
</Style>
</StyleList>
*/
}
}
return buf;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -