view src/java/de/intevation/mxd/reader/MapReader.java @ 31:40c0b4e5f91a

Added utility class to store map attributes.
author Raimund Renkert <rrenkert@intevation.de>
date Mon, 11 Apr 2011 16:04:03 +0200
parents e5fdc37f8f94
children c51376f8e24c
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.UnknownCoordinateSystem;
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 MapToXMLUtils util;

    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(util == null)
            throw new IOException("Can not write to document.");

//        XMLUtils.ElementCreator creator = new XMLUtils.ElementCreator(document,
//                                                                      "", "");
        Element mapElement;
        try{
            mapElement = util.createMap();
        }
        catch(Exception e){
            e.printStackTrace();
            return;
        }
        ISpatialReference sr = map.getSpatialReference();
        logger.debug("Instance: " + sr.getClass().toString());
        if(sr instanceof ProjectedCoordinateSystem){
            ProjectedCoordinateSystem pcs = (ProjectedCoordinateSystem)sr;
            Projection p = (Projection)pcs.getProjection();
            mapElement.setAttribute("projection", p.getName());
        }
        else if(sr instanceof GeographicCoordinateSystem){
            GeographicCoordinateSystem gcs = (GeographicCoordinateSystem)sr;
            mapElement.setAttribute("projection", gcs.getName());
        }
        else if(sr instanceof UnknownCoordinateSystem) {
            UnknownCoordinateSystem ucs = (UnknownCoordinateSystem)sr;
            mapElement.setAttribute("projection", sr.getName());
        }
        else{
            throw new IOException("Unknown SpatialReference: " +
                                  sr.getClass().toString());
        }
    }

    public void setUtil(MapToXMLUtils util){
        this.util = util;
    }
}
// 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)