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

📄 wmcagsmapresourcewriter.java

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