⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmcaimsmapresourcewriter.java

📁 esri的ArcGIS Server超级学习模板程序(for java)
💻 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 + -