Package com.bbn.openmap.proj

Source Code of com.bbn.openmap.proj.LLXYLoader

// **********************************************************************
//
// <copyright>
//
//  BBN Technologies
//  10 Moulton Street
//  Cambridge, MA 02138
//  (617) 873-8000
//
//  Copyright (C) BBNT Solutions LLC. All rights reserved.
//
// </copyright>
// **********************************************************************
//
// $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/proj/LLXYLoader.java,v $
// $RCSfile: LLXYLoader.java,v $
// $Revision: 1.1.2.4 $
// $Date: 2008/09/18 23:23:42 $
// $Author: dietrick $
//
// **********************************************************************

package com.bbn.openmap.proj;

import com.bbn.openmap.LatLonPoint;
import com.bbn.openmap.proj.coords.DatumShiftGCT;
import com.bbn.openmap.util.PropUtils;
import com.bbn.openmap.util.Debug;

import java.util.Properties;

/**
* ProjectionLoader to add the LLXY projection to an OpenMap
* application.
*
* @see BasicProjectionLoader
*/
public class LLXYLoader extends BasicProjectionLoader implements
        ProjectionLoader {

    public LLXYLoader() {
        super(LLXY.class,
              LLXY.LLXYName,
              "Equivalent projection, used for many web data sources.");
    }

    /**
     * Create the projection with the given parameters.
     *
     * @throws exception if a parameter is missing or invalid.
     */
    public Projection create(Properties props) throws ProjectionException {

        try {
            LatLonPoint llp = (LatLonPoint) props.get(ProjectionFactory.CENTER);
            float scale = PropUtils.floatFromProperties(props,
                    ProjectionFactory.SCALE,
                    10000000);
            int height = PropUtils.intFromProperties(props,
                    ProjectionFactory.HEIGHT,
                    100);
            int width = PropUtils.intFromProperties(props,
                    ProjectionFactory.WIDTH,
                    100);
           
            Proj proj = new LLXY(llp, scale, width, height);
           
            Ellipsoid ellps = (Ellipsoid) props.get(ProjectionFactory.DATUM);
            if ((ellps != null) && (ellps != Ellipsoid.WGS_84)) {
        proj = new DatumShiftProjection(proj, new DatumShiftGCT(ellps));
      }
           
            return proj;

        } catch (Exception e) {
            if (Debug.debugging("proj")) {
                Debug.output("LLXYLoader: problem creating LLXY projection "
                        + e.getMessage());
            }
        }

        throw new ProjectionException("LLXYLoader: problem creating LLXY projection");

    }

}
TOP

Related Classes of com.bbn.openmap.proj.LLXYLoader

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.