亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? omscalingraster.java

?? openmap java寫的開(kāi)源數(shù)字地圖程序. 用applet實(shí)現(xiàn),可以像google map 那樣放大縮小地圖.
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// **********************************************************************// // <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/omGraphics/OMScalingRaster.java,v $// $RCSfile: OMScalingRaster.java,v $// $Revision: 1.3.2.8 $// $Date: 2005/08/09 21:17:45 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.omGraphics;import java.awt.Color;import java.awt.Graphics2D;import java.awt.Image;import java.awt.Point;import java.awt.Rectangle;import java.awt.geom.AffineTransform;import java.awt.image.AffineTransformOp;import java.awt.image.BufferedImage;import java.io.Serializable;import javax.swing.ImageIcon;import com.bbn.openmap.proj.Projection;import com.bbn.openmap.util.Debug;/** * This is an extension to OMRaster that automatically scales itelf to * match the current projection. It is only lat/lon based, and takes * the coordinates of the upper left and lower right corners of the * image. It does straight scaling - it does not force the image * projection to match the map projection! So, your mileage may vary - * you have to understand the projection of the image, and know how it * fits the projection type of the map. Of course, at larger scales, * it might not matter so much. *  * This class was inspired by, and created from parts of the * ImageLayer submission from Adrian Lumsden@sss, on 25-Jan-2002. Used * the scaling and trimming code from that submission. That code was * also developed with assistance from Steve McDonald at * SiliconSpaceships.com. *  * @see OMRaster * @see OMRasterObject */public class OMScalingRaster extends OMRaster implements Serializable {    /**     * The latitude of the lower right corner for the image, in     * decimal degrees.     */    protected float lat2 = 0.0f;    /**     * The longitude of the lower right corner for the image, in     * decimal degrees.     */    protected float lon2 = 0.0f;    /**     * This the original version of the image, which we keep around     * for rescaling later.     */    protected BufferedImage sourceImage = null;    /**     * The rectangle in screen co-ordinates that the scaled image     * projects to after clipping.     */    protected Rectangle clipRect;    /**     * Constuct a blank OMRaster, to be filled in with set calls.     */    public OMScalingRaster() {        super();    }    ///////////////////////////////////// INT PIXELS - DIRECT    // COLORMODEL    /**     * Creates an OMRaster images, Lat/Lon placement with a direct     * colormodel image.     *      * @param ullat latitude of the top of the image.     * @param ullon longitude of the left side of the image.     * @param lrlat latitude of the bottom of the image.     * @param lrlon longitude of the right side of the image.     * @param w width of the image, in pixels.     * @param h height of the image, in pixels.     * @param pix color values for the pixels.     */    public OMScalingRaster(float ullat, float ullon, float lrlat, float lrlon,            int w, int h, int[] pix) {        super(ullat, ullon, w, h, pix);        lat2 = lrlat;        lon2 = lrlon;    }    ////////////////////////////////////// IMAGEICON    /**     * Create an OMRaster, Lat/Lon placement with an ImageIcon.     *      * @param ullat latitude of the top of the image.     * @param ullon longitude of the left side of the image.     * @param lrlat latitude of the bottom of the image.     * @param lrlon longitude of the right side of the image.     * @param ii ImageIcon used for the image.     */    public OMScalingRaster(float ullat, float ullon, float lrlat, float lrlon,            ImageIcon ii) {        this(ullat, ullon, lrlat, lrlon, ii.getImage());    }    /**     * Create an OMRaster, Lat/Lon placement with an Image.     *      * @param ullat latitude of the top of the image.     * @param ullon longitude of the left side of the image.     * @param lrlat latitude of the bottom of the image.     * @param lrlon longitude of the right side of the image.     * @param ii Image used for the image.     */    public OMScalingRaster(float ullat, float ullon, float lrlat, float lrlon,            Image ii) {        super();        setRenderType(OMGraphic.RENDERTYPE_LATLON);        setColorModel(COLORMODEL_IMAGEICON);        lat = ullat;        lon = ullon;        lat2 = lrlat;        lon2 = lrlon;        setImage(ii);    }    ////////////////////////////////////// BYTE PIXELS with    // COLORTABLE    /**     * Lat/Lon placement with a indexed colormodel, which is using a     * colortable and a byte array to contruct the int[] pixels.     *      * @param ullat latitude of the top of the image.     * @param ullon longitude of the left side of the image.     * @param lrlat latitude of the bottom of the image.     * @param lrlon longitude of the right side of the image.     * @param w width of the image, in pixels.     * @param h height of the image, in pixels.     * @param bytes colortable index values for the pixels.     * @param colorTable color array corresponding to bytes     * @param trans transparency of image.     */    public OMScalingRaster(float ullat, float ullon, float lrlat, float lrlon,            int w, int h, byte[] bytes, Color[] colorTable, int trans) {        super(ullat, ullon, w, h, bytes, colorTable, trans);        lat2 = lrlat;        lon2 = lrlon;    }    /**     * Creates a BufferedImage version of the image. A new     * BufferedImage object is created, and the image is copied into     * it. You can get rid of the input image after calling this     * method. The OMRaster variables height, width and bitmap are set     * here to the values for the new BufferedImage.     *      * @param image the input image.     */    public void setImage(Image image) {        if (DEBUG) {            Debug.output("OMScalingRaster.setImage: " + image);        }        if (image == null) {            return;        }        if (!(image instanceof BufferedImage)) {            sourceImage = new BufferedImage(image.getWidth(this), image.getHeight(this), BufferedImage.TYPE_INT_ARGB);            Graphics2D g2D = sourceImage.createGraphics();            g2D.drawImage(image, 0, 0, this);        } else {            sourceImage = (BufferedImage) image;        }        width = sourceImage.getWidth();        height = sourceImage.getHeight();        // Just in case rendering tries to happen.        bitmap = sourceImage;    }    /**     * Since the image doesn't necessarily need to be regenerated when     * it is merely moved, raster objects have this function, called     * from generate() and when a placement attribute is changed.     *      * @return true if enough information is in the object for proper     *         placement.     * @param proj projection of window.     */    protected boolean position(Projection proj) {        if (proj == null) {            if (DEBUG) {                Debug.error("OMScalingRaster: null projection in position!");            }            return false;        }        point1 = proj.forward(lat, lon);        point2 = proj.forward(lat2, lon2);        setNeedToReposition(false);        return true;    }    /**     * Prepare the graphics for rendering. For all image types, it     * positions the image relative to the projection. For direct and     * indexed colormodel images, it creates the ImageIcon used for     * drawing to the window (internal to object). For indexed     * colormodel images, it also calls computePixels, to resolve the     * colortable and the bytes to create the image pixels.     *      * @param proj Projection used to position the image on the     *        window.     * @return true if the image is ready to paint.     */    public boolean generate(Projection proj) {        this.shape = null;                // Position sets the position for the OMRaster!!!!        if (!position(proj)) {            if (DEBUG) {                Debug.error("OMRaster.generate(): positioning failed!");            }            return false;        }        if (colorModel != COLORMODEL_IMAGEICON) {            // If the sourceImage hasn't been created, and needs to            // be, then just do what we normally do in OMRaster.            if (sourceImage == null || getNeedToRegenerate()) {                if (DEBUG) {                    Debug.output("OMScalingRaster: generating image");                }                super.generate(proj);                // bitmap is set to a BufferedImage                setImage(bitmap);            }        }        // point1 and point2 are already set in position()        // We assume that the image doesn't cross the dateline, and        // that p1 is upper left corner, and p2 is lower right.        // scaleTo modifies the internal bitmap image for display.        scaleTo(proj);        if (bitmap != null) {            // generate shape that is a boundary of the generated            // image.            // We'll make it a GeneralPath rectangle.            int w = bitmap.getWidth(this);            int h = bitmap.getHeight(this);            setShape(createBoxShape(point1.x, point1.y, w, h));            setNeedToRegenerate(false);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品亚洲成a人| 亚洲国产aⅴ成人精品无吗| 色综合激情五月| 美国三级日本三级久久99| 国产精品欧美一级免费| 777奇米成人网| 成人免费视频视频在线观看免费 | 黑人巨大精品欧美一区| 亚洲欧美电影一区二区| 久久久九九九九| 欧美一级一级性生活免费录像| 成人av影院在线| 久久不见久久见免费视频1| 亚洲国产一区二区a毛片| 中文在线一区二区 | 欧美激情一区在线观看| 欧美激情中文不卡| 精品日韩一区二区三区| 欧美日韩免费不卡视频一区二区三区| 成人精品国产一区二区4080 | 在线一区二区三区四区五区| 国产成人在线视频播放| 男男视频亚洲欧美| 亚洲成av人片一区二区| 一区二区三区美女| 综合色中文字幕| 1000部国产精品成人观看| 国产午夜精品一区二区三区嫩草| 欧美videos中文字幕| 欧美日韩国产欧美日美国产精品| 在线视频国内自拍亚洲视频| 91在线精品一区二区三区| 成人福利视频在线| 成人免费黄色在线| 粉嫩一区二区三区在线看| 国产成人综合亚洲91猫咪| 国产一级精品在线| 黄色日韩网站视频| 国产一二精品视频| 国产精品一区二区三区四区| 国产伦精品一区二区三区免费 | 午夜精品爽啪视频| 亚洲成在线观看| 亚洲成av人片在线| 免费视频一区二区| 国产揄拍国内精品对白| 国产麻豆日韩欧美久久| 国产精品夜夜嗨| 不卡大黄网站免费看| 99久久精品久久久久久清纯| jlzzjlzz亚洲日本少妇| 91丝袜国产在线播放| 欧美在线不卡视频| 欧美日韩综合不卡| 3atv在线一区二区三区| 3d动漫精品啪啪一区二区竹菊| 欧美一卡二卡在线| 国产日产欧美一区二区三区| 轻轻草成人在线| 蜜桃视频第一区免费观看| 秋霞电影一区二区| 国产电影精品久久禁18| 不卡高清视频专区| 欧美日本在线看| 精品三级在线观看| 久久久精品国产免费观看同学| 国产日韩精品一区| 一区二区欧美国产| 青青草97国产精品免费观看 | 有坂深雪av一区二区精品| 亚洲一区二区四区蜜桃| 亚洲成人精品在线观看| 国产一区二区视频在线| 91在线观看一区二区| 欧美日韩国产综合一区二区| 精品国精品国产| 国产精品超碰97尤物18| 亚洲一区二区美女| 国产精品一区免费在线观看| 色网综合在线观看| 欧美大片一区二区| 亚洲视频综合在线| 老色鬼精品视频在线观看播放| 福利一区二区在线| 欧美日韩一区二区在线观看| 久久你懂得1024| 亚洲国产精品嫩草影院| 国产在线看一区| 在线这里只有精品| 久久久99久久精品欧美| 一区二区三区视频在线看| 狠狠色丁香婷婷综合| 欧美主播一区二区三区| 肉丝袜脚交视频一区二区| 亚洲精品水蜜桃| 一区二区三区四区激情| 欧美三级韩国三级日本一级| 精品国产网站在线观看| 一区二区三区不卡视频在线观看| 韩日精品视频一区| 91精品国产色综合久久不卡电影 | 95精品视频在线| 日韩欧美久久一区| 亚洲一区二区精品久久av| 成人深夜在线观看| 精品99999| 丝袜美腿亚洲一区二区图片| caoporm超碰国产精品| www日韩大片| 免费在线观看视频一区| 欧美在线一二三| 亚洲视频一区在线| 成人一区在线看| 欧美xingq一区二区| 日日夜夜免费精品| 色婷婷久久一区二区三区麻豆| 久久久久久黄色| 久久精品av麻豆的观看方式| 欧美色图12p| 一区二区三区电影在线播| 成人高清免费观看| 国产精品伦理一区二区| 国产成人在线影院| 久久新电视剧免费观看| 久久精品国产亚洲高清剧情介绍| 欧美日韩一区二区不卡| 夜夜嗨av一区二区三区| 91香蕉国产在线观看软件| 国产精品久久久久aaaa| 成人免费观看男女羞羞视频| 久久久久久久久久看片| 国产露脸91国语对白| 精品国产91洋老外米糕| 久久99国产精品免费网站| 日韩精品一区二区三区视频播放 | 国产精品久久午夜| 国产91精品一区二区麻豆网站| 26uuu久久天堂性欧美| 精品在线一区二区三区| 精品国产1区2区3区| 国产一区二区三区免费在线观看| 欧美xxxxxxxxx| 韩国午夜理伦三级不卡影院| 亚洲精品在线电影| 国产精品一二三在| 国产精品亲子伦对白| 91在线观看高清| 亚洲精品国产一区二区三区四区在线| 色综合久久88色综合天天 | 夜夜爽夜夜爽精品视频| 在线亚洲高清视频| 日韩成人免费看| 日韩免费电影一区| 国产乱码字幕精品高清av| 国产精品无遮挡| 色综合中文字幕| 亚洲国产日韩a在线播放| 日韩一区二区在线观看| 国产一区二区在线免费观看| 国产蜜臀av在线一区二区三区| 播五月开心婷婷综合| 亚洲超碰97人人做人人爱| 欧美不卡视频一区| 99综合影院在线| 亚洲成在线观看| 久久品道一品道久久精品| 99国产精品视频免费观看| 天堂午夜影视日韩欧美一区二区| 欧美大片一区二区| 99re6这里只有精品视频在线观看| 一区二区高清在线| 欧美大片拔萝卜| 99精品国产视频| 奇米精品一区二区三区在线观看一| www国产亚洲精品久久麻豆| 99v久久综合狠狠综合久久| 日韩黄色小视频| 日本成人在线一区| 久久精品视频在线免费观看 | 欧美日韩国产电影| 国产成人综合视频| 午夜欧美在线一二页| 国产精品高潮呻吟久久| 亚洲一区二区三区视频在线 | 欧美三级日韩三级| 裸体在线国模精品偷拍| 国产精品剧情在线亚洲| 91超碰这里只有精品国产| 成人国产免费视频| 日韩av一区二区三区四区| 亚洲国产精品传媒在线观看| 欧美日韩国产色站一区二区三区| 国产成人av资源| 蜜臀av在线播放一区二区三区| 国产精品私人影院| 精品美女被调教视频大全网站| 色婷婷一区二区| 成人性生交大片免费| 免费不卡在线观看| 亚洲愉拍自拍另类高清精品|