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

📄 dtedslopegenerator.java

📁 openmap java写的开源数字地图程序. 用applet实现,可以像google map 那样放大缩小地图.
💻 JAVA
字号:
// **********************************************************************// // <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/dataAccess/dted/DTEDSlopeGenerator.java,v $// $RCSfile: DTEDSlopeGenerator.java,v $// $Revision: 1.1.2.2 $// $Date: 2004/10/14 18:26:41 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.dataAccess.dted;import com.bbn.openmap.omGraphics.OMGraphic;import com.bbn.openmap.omGraphics.OMGrid;import com.bbn.openmap.omGraphics.OMRaster;import com.bbn.openmap.omGraphics.grid.ElevationColors;import com.bbn.openmap.omGraphics.grid.SlopeGenerator;import com.bbn.openmap.proj.EqualArc;import com.bbn.openmap.proj.Projection;/** * The DTEDSlopeGenerator is an extension to the SlopeGenerator that * uses OMScalingRasters for images created frm the DTED data. It * caches the image and will reuse it if the projection parameters * allow it. It's needed because it assumes that the OMGrid used is a * OMDTEDGrid, which has the lat/lons of the lower left and upper * right corners of the DTED frame. */public class DTEDSlopeGenerator extends SlopeGenerator {    public DTEDSlopeGenerator() {}    public DTEDSlopeGenerator(ElevationColors elevColors) {        super(elevColors);    }    /**     * Called from within generate to create an OMRaster object for     * the OMGrid. This method exists to make it easier to extend this     * class to create an OMRaster as needed.     */    protected OMRaster getRaster(OMGrid grid) {        if (grid instanceof OMDTEDGrid) {            OMDTEDGrid dGrid = (OMDTEDGrid) grid;            // This is probably too expensive for our tastes, since it            // could be keeping two images around. One for the            // created image, and one for the scaled image.            //             raster = new OMScalingRaster(dGrid.getUpperLat(),            // dGrid.getLeftLon(),            //                                          dGrid.getLowerLat(), dGrid.getRightLon(),            //                                          dGrid.width, dGrid.height,            //                                          new int[dGrid.width*dGrid.height]);            raster = new OMRaster(dGrid.getUpperLat(), dGrid.getLeftLon(), dGrid.width, dGrid.height, new int[dGrid.width                    * dGrid.height]);            return raster;        } else {            raster = null;            return super.getRaster(grid);        }    }    /**     * The cached OMScalingRaster, which can be reused instead of     * regenerated in some projection circumstances.     */    protected OMRaster raster;    /**     * The scale at which the cached raster was generated.     */    protected float generatedScale = Float.MAX_VALUE;    /**     * Called from the OMGrid.generate() method to tell the generator     * to create something to represent the grid contents.     */    public OMGraphic generate(OMGrid grid, Projection proj) {        // Make a decision based on the last projection to see if we        // should generate a new raster from the data with better        // detail.        // We used to keep the same OMScalingRaster here if the scale        // number was larger, but I think that might be too much        // memory usage, more so if the scales are pretty close and        // you have two images pretty much the same size for each dted        // frame. So we reuse if the scales match.        if (raster != null && proj instanceof EqualArc                && proj.getScale() == generatedScale && !isIncompleteImage()) {            raster.generate(proj);            return raster;        } else {            generatedScale = proj.getScale();            return super.generate(grid, proj);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -