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

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

?? orthographicview.java

?? openmap java寫的開源數(shù)字地圖程序. 用applet實(shí)現(xiàn),可以像google map 那樣放大縮小地圖.
?? JAVA
字號(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/proj/OrthographicView.java,v $// $RCSfile: OrthographicView.java,v $// $Revision: 1.5.2.1 $// $Date: 2004/10/14 18:27:37 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.proj;import java.awt.*;import com.bbn.openmap.LatLonPoint;import com.bbn.openmap.util.Debug;/** * Implements the OrthographicView projection. */public class OrthographicView extends Orthographic {    /**     * The OrthographicView name.     */    public final static transient String OrthographicViewName = "OrthographicView";    /**     * The OrthographicView type of projection.     */    public final static transient int OrthographicViewType = 77;    private OrthographicViewHelper helper;    // User = the space into which the projection is made    // The relationship between this and the real screen is held    // by some offsets etc.    // Screen = the space that we're looking at.    protected LatLonPoint uCtr;    protected float uCtrLat; // User Center in lat/lon    protected float uCtrLon;    protected int sCtrX; // Screen Origin in pixels (center=0,0)    protected int sCtrY; //     protected int uCtrX; // User Origin in pixels    protected int uCtrY; // 0,0 = lat/lon center    protected int dUSX; // delta between U and S, X axis    protected int dUSY; // delta between U and S, Y axis    /**     * Construct an OrthographicView projection.     * <p>     *      * @param center LatLonPoint center of projection     * @param scale float scale of projection     * @param width width of screen     * @param height height of screen     *       */    public OrthographicView(LatLonPoint center, float scale, int width,            int height) {        super(center, scale, width, height, OrthographicType);        setMinScale(1000.0f);        computeParameters();    }    /**     * Return stringified description of this projection.     * <p>     *      * @return String     * @see Projection#getProjectionID     *       */    public String toString() {        return "OrthographicView[" + super.toString();    }    /**     * Set center point of projection.     * <p>     *      * @param lat float latitude in decimal degrees     * @param lon float longitude in decimal degrees     *       */    public void setCenter(float lat, float lon) {        ctrLat = normalize_latitude(ProjMath.degToRad(lat));        ctrLon = wrap_longitude(ProjMath.degToRad(lon));        computeParameters();        projID = null;    }    /**     * Set center point of projection.     * <p>     *      * @param pt LatLonPoint     */    public void setCenter(LatLonPoint pt) {        setCenter(pt.getLatitude(), pt.getLongitude());    }    /**     * Called when some fundamental parameters change.     * <p>     * Each projection will decide how to respond to this change. For     * instance, they may need to recalculate "constant" paramters     * used in the forward() and inverse() calls.     * <p>     *       */    protected void computeParameters() {        Debug.message("orthographicview",                "OrthographicView.computeParameters()");        // We have no way of constructing the User Space at anything        // other than 0,0 for now.        if (uCtr == null) {            uCtrLat = (float) 0.0;            uCtrLon = (float) 0.0;            uCtr = new LatLonPoint(uCtrLat, uCtrLon);        }        if (helper == null) {            helper = new OrthographicViewHelper(uCtr, scale, width, height);        }        synchronized (helper) {            super.computeParameters();            // Screen stuff            Point temp = new Point();            helper.setAllParams(pixelsPerMeter,                    planetRadius,                    planetPixelRadius,                    planetPixelCircumference,                    minscale,                    maxscale,                    scale,                    scaled_radius,                    width,                    height,                    uCtrLat,                    uCtrLon);            // compute the offsets            this.hy = height / 2;            this.wx = width / 2;            helper.forward(ctrLat, ctrLon, temp, true);            sCtrX = temp.x;            sCtrY = temp.y;            helper.forward(uCtrLat, uCtrLon, temp);            uCtrX = temp.x;            uCtrY = temp.y;            dUSX = sCtrX - uCtrX;            dUSY = sCtrY - uCtrY;        }        Debug.message("orthographicview", "User Center LL: " + uCtrLon + ","                + uCtrLat + " User Center xy: " + uCtrX + "," + uCtrY                + " Screen Center LL: " + ProjMath.radToDeg(ctrLon) + ","                + ProjMath.radToDeg(ctrLat) + " Screen Center xy: " + sCtrX                + "," + sCtrY + " Screen wh: " + width + "x" + height                + " Screen halfwh: " + this.wx + "x" + this.hy + " Delta xy: "                + dUSX + "," + dUSY);    }    /**     * Forward project a point. If the point is not within the     * viewable hemisphere, return flags in AzimuthVar variable if     * specified.     *      * @param phi float latitude in radians     * @param lambda float longitude in radians     * @param p Point     * @param azVar AzimuthVar or null     * @return Point pt     */    protected Point _forward(float phi, float lambda, Point p, AzimuthVar azVar) {        helper._forward(phi, lambda, p, azVar);        Debug.message("orthographicview-f", "forward p,p,p,a: "                + ProjMath.radToDeg(lambda) + "," + ProjMath.radToDeg(phi)                + " orth xy: " + p.x + "," + p.y);        p.x = p.x + this.wx - dUSX;        p.y = this.hy - p.y + dUSY;        Debug.message("orthographicview-f", "forward p,p,p,a: "                + ProjMath.radToDeg(lambda) + "," + ProjMath.radToDeg(phi)                + " view xy: " + p.x + "," + p.y);        return p;    }    /**     * Inverse project x,y coordinates into a LatLonPoint.     * <p>     *      * @param x integer x coordinate     * @param y integer y coordinate     * @param llp LatLonPoint     * @return LatLonPoint llp     * @see Proj#inverse(Point)     *       */    public LatLonPoint inverse(int x, int y, LatLonPoint llp) {        // convert from screen to world coordinates        int tx = x - this.wx + dUSX;        int ty = this.hy - y + dUSY;        // This is only to aid printing....        LatLonPoint tllp = helper.inverse(tx, ty, llp);        Debug.message("mercatorview-i", "xy: " + x + "," + y + " txty: " + tx                + "," + ty + " llp: " + tllp.getLongitude() + ","                + tllp.getLatitude());        return (helper.inverse(tx, ty, llp));    }    /**     * Inverse project a Point.     * <p>     *      * @param pt x,y Point     * @param llp resulting LatLonPoint     * @return LatLonPoint llp     *       */    public LatLonPoint inverse(Point pt, LatLonPoint llp) {        return inverse(pt.x, pt.y, llp);    }    /**     * Draw the background for the projection.     *      * @param g Graphics2D     * @param paint java.awt.Paint to use for the background     */    public void drawBackground(Graphics2D g, java.awt.Paint paint) {        g.setPaint(paint);        drawBackground(g);    }    /**     * Assume that the Graphics has been set with the Paint/Color     * needed, just render the shape of the background.     */    public void drawBackground(Graphics g) {        g.fillRect(0, 0, getWidth(), getHeight());    }    public LatLonPoint getUpperLeft() {        return (helper.getUpperLeft());    }    public LatLonPoint getLowerRight() {        return (helper.getLowerRight());    }    //////////////////////////////////////////////////////////////////////    //    //    //    // HELPER!    //    // This will hold the "USER" space version of the Mercator    // The forward and inverse methods are extended here to undo    // the screen coordinate conversions (i.e this helper deals    // in user space while its "super" deals in what it thinks is    // screen    // space.    //    //////////////////////////////////////////////////////////////////////    private class OrthographicViewHelper extends Orthographic {        public OrthographicViewHelper(LatLonPoint center, float scale,                int width, int height) {            super(center, scale, width, height, OrthographicType);        }        public void setAllParams(int hPixelsPerMeter, float hPlanetRadius,                                 float hPlanetPixelRadius,                                 float hPlanetPixelCircumference,                                 float hMinscale, float hMaxscale,                                 float hScale, float hScaled_radius,                                 int hWidth, int hHeight, float hCtrLat,                                 float hCtrLon) {            this.pixelsPerMeter = hPixelsPerMeter;            this.planetRadius = hPlanetRadius;            this.planetPixelRadius = hPlanetPixelRadius;            this.planetPixelCircumference = hPlanetPixelCircumference;            this.minscale = hMinscale;            this.maxscale = hMaxscale;            this.scale = hScale;            this.scaled_radius = hScaled_radius;            this.width = hWidth;            this.height = hHeight;            this.ctrLat = hCtrLat;            this.ctrLon = hCtrLon;            this.computeParameters();        }        public String toString() {            return "OrthographicViewHelper[" + super.toString();        }        public Point _forward(float phi, float lambda, Point p, AzimuthVar azVar) {            super._forward(phi, lambda, p, azVar);            Debug.message("ortrhographicview-f", "forward p,l,l,a: "                    + ProjMath.radToDeg(lambda) + "," + ProjMath.radToDeg(phi)                    + " help xy: " + p.x + "," + p.y);            p.x = p.x - this.wx;            p.y = this.hy - p.y;            return p;        }        public LatLonPoint inverse(int x, int y, LatLonPoint llp) {            x = x + this.wx;            y = this.hy - y;            return (super.inverse(x, y, llp));        }    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色就色 综合激情| 国产成人av影院| 欧美日韩和欧美的一区二区| 亚洲一区视频在线观看视频| 欧美三级在线看| 免费成人在线播放| 久久色成人在线| 成人高清视频在线| 一区二区三区四区视频精品免费 | 免费成人你懂的| 亚洲精品在线观看视频| 粉嫩13p一区二区三区| 亚洲精品网站在线观看| 欧美日本在线播放| 国产美女久久久久| 亚洲天堂免费看| 91麻豆精品国产自产在线| 久久91精品国产91久久小草 | 国产精品萝li| 欧美日韩三级一区| 国产精品一区二区三区四区 | 欧美日韩一区二区三区在线看| 日本欧美一区二区| 国产精品国产三级国产| 5858s免费视频成人| 成人永久免费视频| 日本成人中文字幕在线视频| 国产欧美1区2区3区| 欧美日韩免费高清一区色橹橹| 激情国产一区二区| 亚洲激情成人在线| 久久亚洲精品国产精品紫薇| 色综合天天狠狠| 黄页视频在线91| 亚洲综合免费观看高清在线观看| www国产精品av| 欧美午夜寂寞影院| 粉嫩13p一区二区三区| 日韩电影免费一区| 亚洲三级电影网站| 久久精品视频免费| 欧美日韩三级一区二区| 99视频有精品| 国产一区二区三区最好精华液| 亚洲激情av在线| 国产精品剧情在线亚洲| 日韩一区二区三区av| 色婷婷综合久久| 成人国产亚洲欧美成人综合网 | 国产一区二区0| 亚洲18色成人| 亚洲女爱视频在线| 亚洲国产电影在线观看| 精品国免费一区二区三区| 在线免费一区三区| 91亚洲资源网| 大桥未久av一区二区三区中文| 精品一区二区免费视频| 日韩电影在线免费观看| 亚洲v日本v欧美v久久精品| 亚洲乱码精品一二三四区日韩在线| 久久久久久久久蜜桃| 欧美丰满少妇xxxxx高潮对白| 色婷婷香蕉在线一区二区| 99re66热这里只有精品3直播| 国产精品一区免费在线观看| 麻豆91小视频| 蜜臀av性久久久久av蜜臀妖精| 天堂影院一区二区| 午夜影院久久久| 亚洲国产精品一区二区www| 亚洲精品ww久久久久久p站| 国产精品成人免费在线| 国产精品免费视频网站| 国产欧美一区二区精品仙草咪| 精品国产一区二区精华| 欧美成人一级视频| 久久综合狠狠综合久久综合88| 精品日本一线二线三线不卡| 欧美刺激午夜性久久久久久久| 日韩欧美一级精品久久| 日韩精品综合一本久道在线视频| 日韩亚洲欧美中文三级| 欧美mv日韩mv国产网站app| 日韩欧美国产高清| 亚洲精品一区二区三区99| 精品国产成人系列| 国产午夜亚洲精品午夜鲁丝片| 久久久久国产精品麻豆| 国产精品少妇自拍| 一区二区三区在线观看动漫| 午夜精品在线看| 久久电影网电视剧免费观看| 国产麻豆午夜三级精品| 成人性生交大片免费看视频在线| av亚洲精华国产精华精华 | 亚洲成人av福利| 奇米777欧美一区二区| 国产精品1024久久| 97久久久精品综合88久久| 欧美日韩一区视频| 久久婷婷久久一区二区三区| 国产精品高潮久久久久无| 一区二区三区四区国产精品| 无码av免费一区二区三区试看 | 午夜伊人狠狠久久| 国产麻豆精品95视频| 91丨porny丨在线| 91精品国产高清一区二区三区| www日韩大片| 亚洲精品成人少妇| 久久91精品国产91久久小草| 不卡av在线网| 91麻豆精品国产91久久久资源速度| 欧美不卡视频一区| 亚洲欧美日韩国产一区二区三区| 五月天久久比比资源色| 粉嫩嫩av羞羞动漫久久久 | 欧美区一区二区三区| 久久无码av三级| 一二三区精品福利视频| 国产一区999| 欧美日韩一级黄| 国产精品全国免费观看高清| 亚洲成年人影院| www.综合网.com| 日韩欧美成人一区| 一区二区三区中文在线观看| 国精产品一区一区三区mba视频| 一本久久a久久精品亚洲| 久久久综合九色合综国产精品| 一区二区高清视频在线观看| 国产成人免费视频网站高清观看视频| 在线观看区一区二| 欧美激情艳妇裸体舞| 美女被吸乳得到大胸91| 色天使色偷偷av一区二区| 欧美大片日本大片免费观看| 亚洲一区视频在线观看视频| 白白色亚洲国产精品| 亚洲精品一区二区三区福利 | 欧美在线视频你懂得| 国产欧美日本一区视频| 裸体一区二区三区| 欧美系列日韩一区| 专区另类欧美日韩| 国产成人av电影| 久久久精品综合| 麻豆成人免费电影| 日韩天堂在线观看| 亚洲一区二区三区不卡国产欧美| jizzjizzjizz欧美| 欧美激情一区二区三区四区| 国产综合色在线| 精品久久久久久久久久久久包黑料| 亚洲丰满少妇videoshd| 色琪琪一区二区三区亚洲区| 国产精品毛片a∨一区二区三区| 国产一区二区按摩在线观看| 欧美不卡一二三| 狠狠色丁香九九婷婷综合五月| 欧美一区二区三区免费| 日韩精品一级二级| 制服丝袜日韩国产| 免费不卡在线视频| 欧美一区二区三区思思人 | 国内精品嫩模私拍在线| 日韩精品一区二区三区四区 | 免费观看日韩电影| 日韩女优电影在线观看| 秋霞午夜av一区二区三区| 日韩视频在线永久播放| 久久电影网电视剧免费观看| 日韩精品一区二区三区视频播放 | 色拍拍在线精品视频8848| 亚洲精品大片www| 欧美日韩国产美女| 首页综合国产亚洲丝袜| 日韩欧美综合在线| 国产尤物一区二区| 欧美国产97人人爽人人喊| 成人福利在线看| 亚洲欧美一区二区不卡| 欧美在线一区二区三区| 日本vs亚洲vs韩国一区三区| 精品欧美一区二区久久| 懂色av中文字幕一区二区三区| 国产精品精品国产色婷婷| 欧美羞羞免费网站| 久久精品国产99国产| 国产日产欧美精品一区二区三区| 99视频精品全部免费在线| 亚洲一二三四在线观看| 欧美二区在线观看| 国产一区二区在线电影| 亚洲欧美日韩国产综合| 欧美挠脚心视频网站| 国产成人综合在线播放| 亚洲五月六月丁香激情| 欧美xxxxxxxx|