view src/java/de/intevation/mxd/reader/MapReader.java @ 27:e5fdc37f8f94

Added XMLUtils to store map information.
author Raimund Renkert <rrenkert@intevation.de>
date Fri, 08 Apr 2011 14:21:45 +0200
parents 3e24fffdf2bb
children 40c0b4e5f91a
line wrap: on
line source
//package de.intevation.mxd.reader;

import java.io.IOException;

import org.apache.log4j.Logger;

import com.esri.arcgis.carto.IMap;
import com.esri.arcgis.carto.Map;
import com.esri.arcgis.geometry.ISpatialReference;
import com.esri.arcgis.geometry.ProjectedCoordinateSystem;
import com.esri.arcgis.geometry.GeographicCoordinateSystem;
import com.esri.arcgis.geometry.IProjection;
import com.esri.arcgis.geometry.Projection;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

/**
 * Reads map information.
 *
 * @author <a href="mailto:raimund.renkert@intevation.de">Raimund Renkert</a>
 */
public class MapReader{

    //Member
    private IMap map;
    private Document document;

    private static final Logger logger = Logger.getLogger(MapReader.class);

    //Constructor
    public MapReader(IMap map){
        logger.debug("constructor()");
        this.map = map;
    }


    //Methods

    /**
     * Reads the Map attributes.
     */
    public void read() throws IOException{
        logger.debug("read()");
        if(document == null)
            throw new IOException("Can not write to document.");

        XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator(document,
                                                                      "", "");
        Element mapElement = creator.create("map");
        ISpatialReference sr = map.getSpatialReference();
        logger.debug("Instance: " + sr.getClass().toString());
        if(sr instanceof ProjectedCoordinateSystem){
            ProjectedCoordinateSystem pcs = (ProjectedCoordinateSystem)sr;
            Projection p = (Projection)pcs.getProjection();
            creator.addAttr(mapElement, "projection", p.getName());
        }
        else if(sr instanceof GeographicCoordinateSystem){
            GeographicCoordinateSystem gcs = (GeographicCoordinateSystem)sr;
            creator.addAttr(mapElement, "projection", gcs.getName());
        }
        else{
            throw new IOException("Unknown SpatialReference: " +
                                  sr.getClass().toString());
        }
        document.appendChild(mapElement);
    }

    public void setDocument(Document doc){
        this.document = doc;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)