Package chunmap.service.wms

Source Code of chunmap.service.wms.Capabilities

/**
* Copyright (c) 2009-2011, chunquedong(YangJiandong)
*
* This file is part of ChunMap project
* Licensed under the GNU LESSER GENERAL PUBLIC LICENSE(Version >=3)
*
* History:
*     2010-05-05  Jed Young  Creation
*/
package chunmap.service.wms;

import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;

import chunmap.model.elem.Envelope;
import chunmap.view.layer.Layer;

public class Capabilities {

  private static final String version = "1.1.1";

  private String baseURL;
  private String link;
  private String serviceTile;
  private String url;
  private String srs;
  private List<Layer> layers=new ArrayList<Layer>();

  public void reponse(PrintStream out) throws IOException {
    getHead(out);
    for (Layer layer : layers) {
      getBody(out, layer);
    }
    getFoot(out);
  }

  private void getHead(PrintStream out) throws IOException {
    out.println("<?xml version='1.0' encoding=\"UTF-8\" standalone=\"no\" ?>");
    out.println("<!DOCTYPE WMT_MS_Capabilities SYSTEM \"" + baseURL
        + "/DTD?VERSION=" + version + "\">");
    out.println("<WMT_MS_Capabilities version=\"" + version + "\">");
    out.println("<Service>");
    out.println("  <Name>OGC:WMS</Name>");
    out.println("  <Title>" + serviceTile + "</Title>");
    out.println("  <OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\""
            + link + "\" />");
    out.println("  <Fees>none</Fees>");
    out.println("  <AccessConstraints>none</AccessConstraints>");
    out.println("</Service>");
    out.println("<Capability>");
    out.println("  <Request>");
    out.println("    <GetCapabilities>");
    out.println("      <Format>application/vnd.ogc.wms_xml</Format>");
    out.println("      <DCPType>");
    out.println("        <HTTP>");
    out.println("          <Get>");
    out.println("            <OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\""
            + url + "\"/>");
    out.println("          </Get>");
    out.println("        </HTTP>");
    out.println("      </DCPType>");
    out.println("    </GetCapabilities>");
    out.println("    <GetMap>");
    out.println("      <Format>image/jpg</Format>");
    out.println("      <Format>image/png</Format>");
    out.println("      <DCPType>");
    out.println("        <HTTP>");
    out.println("          <Get>");
    out.println("            <OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\""
            + url + "\"/>");
    out.println("          </Get>");
    out.println("        </HTTP>");
    out.println("      </DCPType>");
    out.println("    </GetMap>");
    out.println("    <GetFeatureInfo>");
    out.println("      <Format>text/plain</Format>");
    out.println("      <Format>text/html</Format>");
    out.println("      <DCPType>");
    out.println("        <HTTP>");
    out.println("          <Get>");
    out.println("            <OnlineResource xmlns:xlink=\"http://www.w3.org/1999/xlink\" xlink:type=\"simple\" xlink:href=\""
            + url + "\"/>");
    out.println("          </Get>");
    out.println("        </HTTP>");
    out.println("      </DCPType>");
    out.println("    </GetFeatureInfo>");
    out.println("  </Request>");
    out.println("  <Exception>");
    out.println("    <Format>application/vnd.ogc.se_xml</Format>");
    out.println("  </Exception>");
    out.println(" <Layer>");
    out.println("    <Title>" + serviceTile + "</Title>");
    out.println("    <SRS>" + srs + "</SRS>");
  }

  private void getBody(PrintStream out, Layer layer)
      throws IOException {
    out.println("  <Layer>");
    out.println("    <Name>" + layer.getName() + "</Name>");
    out.println("      <Title>" + layer.getName() + "</Title>");
    Envelope env = layer.getEnvelop();
    out.println("      <LatLongBoundingBox minx=\"" + env.getMinX()
        + "\" miny=\"" + env.getMinY() + "\" maxx=\"" + env.getMaxX()
        + "\" maxy=\"" + env.getMaxY() + "\" />");

    // do not support style
    // out.println("      <Style>");
    // out.println("        <Name>" + "?" + "</Name>");
    // out.println("        <Title>" + "?" + "</Title>");
    // out.println("      </Style>");

    out.println("  </Layer>");
  }

  private void getFoot(PrintStream out) throws IOException {
    out.println(" </Layer>");
    out.println("</Capability>");
    out.println("</WMT_MS_Capabilities>");
  }

  // ------------------------------------------------------------------------------
  /**
   * @return the baseURL
   */
  public String getBaseURL() {
    return baseURL;
  }

  /**
   * @param baseURL
   *            the baseURL to set
   */
  public void setBaseURL(String baseURL) {
    this.baseURL = baseURL;
  }

  /**
   * @return the link
   */
  public String getLink() {
    return link;
  }

  /**
   * @param link
   *            the link to set
   */
  public void setLink(String link) {
    this.link = link;
  }

  /**
   * @return the serviceTile
   */
  public String getServiceTile() {
    return serviceTile;
  }

  /**
   * @param serviceTile
   *            the serviceTile to set
   */
  public void setServiceTile(String serviceTile) {
    this.serviceTile = serviceTile;
  }

  /**
   * @return the url
   */
  public String getUrl() {
    return url;
  }

  /**
   * @param url
   *            the url to set
   */
  public void setUrl(String url) {
    this.url = url;
  }

  /**
   * @return the srs
   */
  public String getSrs() {
    return srs;
  }

  /**
   * @param srs
   *            the srs to set
   */
  public void setSrs(String srs) {
    this.srs = srs;
  }

  /**
   * @return the layers
   */
  public List<Layer> getLayers() {
    return layers;
  }

  /**
   * @param layers
   *            the layers to set
   */
  public void setLayers(List<Layer> layers) {
    this.layers = layers;
  }
}
TOP

Related Classes of chunmap.service.wms.Capabilities

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.